顯示具有 program 標籤的文章。 顯示所有文章
顯示具有 program 標籤的文章。 顯示所有文章

NS-2上的TCP RTO指數倒退機制

觀察NS-2的tcp原始碼,發現其中關於RTO指數倒退機制(rto backoff mechanism)的定義可區分遵循RFC2988和不遵循RFC2988兩部份。不過即使如此,與認知中仍有些出入,因此特別作個紀錄。

先提一下RFC2988的兩條重要敘述:
(2.4) Whenever RTO is computed, if it is less than 1 second then the RTO SHOULD be rounded up to 1 second.
(2.5) A maximum value MAY be placed on RTO provided it is at least 60 seconds.

三支小程式

幫朋友寫的作業,題目不刁鑽,強調趣味性,但若要找出複雜度低的演算法,其實很具挑戰,我那時候接近期中考,時間不多,就每個都厚顏地暴力解了。聽說後來讓助教測試程式的時候,其中一題的進階測試數據跑了十分鐘還沒跑出結果,囧在當下,哈哈。

以下便列這幾個程式題目和我的跛腳實作。

[轉貼]前置處理器的預設變數

存放一些編譯時的訊息,挺有意思的。

轉貼自 http://taichunmin.pixnet.net/blog/post/32540994

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

using namespace std;

int main()
{
    cout << __LINE__ << endl; // 這一行的行號
    cout << __FILE__ << endl; // 原始檔的檔名
    cout << __DATE__ << endl; // 編譯時的日期
    cout << __TIME__ << endl; // 編譯時的時間
    cout << __cplusplus << endl; // 可以使用C++函式
    cout << __STDC__ << endl; // 可以使用C函式
    cout << __func__ << endl; // 顯示現在所在的函式
    cout << __FUNCTION__ << endl; // 顯示現在所在的函式
    cout << __PRETTY_FUNCTION__ << endl; // 顯示現在所在的函式宣告

    return 0;
}

GTK+ && Glade2.6簡易實作

MWSnap_029 2010-06-30, 08_59_50

本來Glade2.12用得順手,但換電腦後想下載來用,卻在網路上遍尋不著,而Glade3又只提供介面而沒有幫忙輸出制式程式碼,不太方便。所以又繼續埋頭找,但最終也只找到Glade2.6版的安裝檔,不甚滿意,但還能接受。

下載點http://sourceforge.net/projects/gladewin32/files/

製作Qt Runtime安裝檔

官方沒有提供Qt runtime,或許是因為Qt每個版本的dll檔都略有差異,使用上一個版本的dll檔,可能會讓程式產生部分錯誤,所以才乾脆讓開發者自己想辦法。

在未安裝Qt開發環境的電腦中執行Qt程式其實不難,辦法有三個:

Qt習作之簡易圖像瀏覽器 v0.1

怒犯天條 (Dogma, 1999)

應該算是上一篇顯示圖片練習的延伸,透過這次實作,更進一步了解Qt的事件處理方式。不像GTK+每個事件只能傳遞一個指標,Qt可以透過Class的data member來傳遞資料,要多少有多少,而不用像GTK+總要費勁把全部要傳的資料都塞在一個struct裏,再迂迴地套指標來使用。

Qt習作之圖片顯示

押切蓮介__黃昏特攻隊

照例,練習GUI Framework都先從顯示圖片開始著手。

稍微碰了一下Qt,感覺上很多細節都很人性化,譬如說不用指定window,一個label或一個pushButton都可以自己形成視窗,所以一個最簡單的Hello World可以只有短短四行程式碼,的確正如廣告說的,需要輸入的程式碼變少了。

所編繹出來的檔案大小也夠精練,小程式都可控制在100k以內,與GTK+相比不遑多讓,執行速度更比GTK+快上許多,兼具精簡與效能,難怪會成為目前GUI Framework中的大熱門,名氣得來一點都不僥倖。

目前對Qt的印象非常良好,以後就專門拿它來練習C++。

若真的要挑剔,那大概只能說Qt的Signal/Slot機制並沒有那麼直覺,其中Signal的程式碼還需要qmake生成才能順利編譯。相比於GTK+簡單明瞭的callback函式,實在複雜許多。當然這只是一時的感想,之後若更進一步認識,或許就會改變看法了。

這支小程式實作過程中,參考了Qt4學習筆記其中的幾個範例程式,真的得說,這個教學網站對我幫助很大,若沒有它,恐怕沒辦法這個快理出頭緒來,感謝哪。

/