Time of Update: 2018-12-05
先分析一下過程: 按一下滑鼠:down >> up 滑鼠雙擊:down >> up >> down >> up 於是單擊和雙擊這個過程,由於按鍵延時的關係,必定重複導致產生衝突,另外VC的Dialog/View的單擊、雙擊函數: ON_WM_LBUTTONDBLCLK() ON_WM_LBUTTONDOWN() 它們預設是不處理這個延時,所以只能由自己編寫相關代碼,尋找相關資料後,整理代碼如下:void
Time of Update: 2018-12-05
1、FTP(檔案傳輸通訊協定),用於將一個主機上的檔案傳送到另一個主機。和其他協議不同的是,它使用兩條串連,一條用於資料傳送(port 20),另一條用於命令控制傳送(port 21)。其中,控制串連在整個FTP會話階段(ftp
Time of Update: 2018-12-05
1、TCP首部選項欄位多達40B,記下一些常用的東西:2、選項結束欄位(EOP,0x00),佔1B,一個報文段僅用一次。放在末尾用於填充,用途是說明:首部已經沒有更多的訊息,應用資料在下一個32位字開始處3、無操作欄位(NOP, 0x01),佔1B,也用於填充,放在選項的開頭4、MSS(最大報文段長度),格式如下:種類(1B,值為2),長度(1B,值為4),數值(2B)用於在串連開始時確定MSS的大小,如果沒有確定,就用預設的(一般實現是536B)5、視窗擴大因子,格式如下:種類(1B,值為3)
Time of Update: 2018-12-05
讀《TCP/IP詳解》時候看到IP首部校正和演算法中叫做“每16bit反碼求和”,於是我以為是每一部都先反碼在求和。所以我寫的過程如下:(以如下數組為例 unsigned short a[10] = { 0x4500, 0x059a, 0x82b9, 0x4000, 0x3206, 0x4f79,0xa66f, 0x08ee, 0xc0a8, 0x0126};因為IP首部長20B,就是10個16進位數,這是校正和的驗證部分)unsigned short re = 0;for(int i = 0
Time of Update: 2018-12-05
1、串連建立階段的三向交握一般情況下,用戶端連到伺服器叫做主動開啟,伺服器上的連接埠監聽叫做被動開啟a、準備,伺服器處理序被動開啟連接埠b、第一次:客戶發送SYN報文,主動開啟串連。這個報文中的序號叫做ISN(初始序號),是隨機產生的。(SYN報文不帶資料,但是消耗一個序號)c、第二次:伺服器收到後,發送SYN+ACK報文。d、第三次:客戶段收到後,發送ACK報文進行確認。2、串連正常終止的三向交握協議:(以客戶主動關閉為例)a、客戶:發送FIN,主動關閉b、伺服器:發送FIN+ACK(當然可以
Time of Update: 2018-12-05
1、TCP協議(傳輸控制通訊協定)是端到端的可靠的,連線導向的協議。處理的對象稱為TCP報文段(segment),是基於流的協議。2、不像UDP,TCP留有兩個緩衝,發送和接收緩衝,用來暫存TCP報文段,以便於重傳和確認機制使用3、特點:編號系統,流量控制,擁塞控制,差錯控制,計時器(4個)等4、TCP Segment格式:首部(20B-60B)+
Time of Update: 2018-12-05
因為沒有深入研究STL的源碼,犯渾犯了一個錯誤,以為無論如何vector的所有元素的地址都不變,比如vector<int> [0] ,就想去記錄這個地址,留著這個地址以後慢慢用。 結果發現不是這麼一回事,這個地址是會變的,因為如果vector一開始申請的空間不足,比如你經常push_back(),vector會重新申請過一整塊空間,導致其所有的地址都發生了改變。所以不要私自用指標指向並儲存這一塊地址,因為很多情況下存了也沒用,說不定什麼時候vector就重新申請了一塊新的地址,
Time of Update: 2018-12-05
1、流量控制是管理兩端的流量,以免會產生髮送過塊導致收端溢出,或者因收端處理太快而浪費時間的狀態。用的是:滑動視窗,以位元組為單位2、視窗有3種動作:展開(右邊向右),合攏(左邊向右),收縮(右邊向左)這三種動作受接收端的控制。合攏:表示已經收到相應位元組的確認了展開:表示允許緩衝發送更多的位元組收縮(非常不希望出現的,某些實現是禁止的):表示本來可以發送的,現在不能發送;但是如果收縮的是那些已經發出的,就會有問題;為了避免,收端會等待到緩衝中有更多緩衝空間時才進行通訊。發端視窗的大小取決於收端
Time of Update: 2018-12-05
前幾天朋友跟我說了一道面試題:五筆的編碼範圍是a到y的25個字母,從1位到4位的編碼,如果將五筆的編碼按字典序排序,形成數組如下:a, aa, aaa, aaaa, aaab, aaac, ..., b, ba, baa, baaa, baab...yyyx,
Time of Update: 2018-12-05
1、TCP必須保證資料:按序,沒有差錯,沒有部分丟失,沒有重複的交給應用程式層。方法就是:校正和,確認,逾時重傳2、校正和:和UDP的做法一樣,也要偽首部,和UDP不同的是這個功能在TCP中是必須的3、確認:ACK的確認機制(下面是一些原則)a、ACK報文不需要確認,也不消耗序號b、當一端發送資料時,盡量包含捎帶確認。c、收端延遲發送ACK報文段,如果僅有一個未確認的按序報文段;延遲到500ms,或者有第二個報文段接收時(轉d),或者有資料要發送時(轉b)d、任何時候,不能有兩個(以上)未確認的
Time of Update: 2018-12-05
CreateThread函數是windows API。其在建立線程時不進行初始化工作。在使用一些不可重新進入函數時,線程會分配線程相關的空間儲存一些全域變數。而線上程退出時,這些空間不會釋放,造成記憶體泄露。 _beginthreadex函數是CRT函數。會在建立線程時進行一些初始化動作,線上程函數return時會自動調用_endthreadex來自動釋放這些記憶體。直接調用_endthreadex會導致線程函數中的局部變數不能夠析構。 afxbeginthread函數主要用於MFC程式中。
Time of Update: 2018-12-05
我以前女朋友非常喜歡玩“泡泡堂”,後來只好硬著頭皮被玩耍,後面也漸漸習慣與她耍幾盤了。失去她的那段時間自然是很痛苦的,然而我只是自己不喜歡做什麼事一向都是很“被動”,所以讓我能理性的面對她的離開。 扯遠了,別砸雞蛋! 下面的代碼在VC6.0 + XP SP2編譯通過,如有疑問可直接郵件或QQ聯絡我以增強互相交流! 1、先尋找視窗 HWNDhWnd =
Time of Update: 2018-12-05
1、如果網路上的負載(發送到網路上的分組數)大於網路上的容量(網路同時能處理的分組數),就可能引起擁塞,判斷網路擁塞的兩個因素:延時和輸送量。擁塞控制機制是:開環(預防)和閉環(消除)(見網路原理相關書籍,略)tcp處理擁塞的三種策略:慢啟動(指數增大),擁塞避免(加法增大),擁塞檢測(除2減少,或叫做乘法減少)2、慢啟動:指數增大/* ssthresh是慢開始門限,slow start threshold表示一個上限,一般的實現為65535B */ cwnd = 1;(1表示一個MSS報文段,
Time of Update: 2018-12-05
(轉)網上摘抄:影像處理的網上資料 作影像處理方面的研究工作,最重要的兩個問題:其一是要把握住國際上最前沿的內容;其二是所做工作要具備很高的實用背景。解決第一個問題的辦法就是找出這個方向公認最牛的幾個超級大拿(看看他們都在作什麼) 和最權威的出版物(閱讀上面最新的文獻),解決第二個問題的辦法是你最好能夠找到一個實際應用的項目,邊做邊寫文章做好這幾點的途徑之一就是充分利用網路資源,特別是權威網站和大拿們的個人首頁。 一.研究群體:1.
Time of Update: 2018-12-05
(轉)網上摘抄:計算數學研究方向及網上資料 /* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-parent:"";mso-padding-alt:0cm 5.4pt 0cm
Time of Update: 2018-12-05
轉至:VC知識庫hyj的Blog(除蟲記之十二:費解的NTDLL斷點)原貼地址:http://blog.vckbase.com/hyj/archive/2006/06/28/21006.html 除蟲記之十二:費解的NTDLL斷點
Time of Update: 2018-12-05
/* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-parent:"";mso-padding-alt:0cm 5.4pt 0cm
Time of Update: 2018-12-05
VC++ 6.0支援Unicode編程,但預設的是ANSI,所以開發人員只需要稍微改變一下編寫代碼的習慣便可以輕鬆編寫支援UNICODE的應用程式。使用VC++ 6.0進行Unicode編程主要做以下幾項工作:
Time of Update: 2018-12-05
記一下拉格朗日插值公式的推導和一些要點【這裡說的都是二維插值,多維上的以此類推】 1、插值問題:在做實驗的過程中,往往得到一堆離散的資料,現在想用數學公式類比這堆離散資料。怎麼辦,數學家們提出了插值問題。插值問題的提法是這樣的給定一堆資料點(x0, y0), (x1, y1), (x2, y2)...(xn, yn),要求一個函數 y = f(x)
Time of Update: 2018-12-05
1、大多數TCP實現使用至少4種計時器:重傳,2MSL,持久,保活2、2MSL計時器用於串連終止時,原因見:TCP協議的狀態和串連3、保活計時器(keepalive timer)用於防止串連出現長時間的空閑;每當伺服器收到客戶訊息就把該計時器複位,如果超過時間還沒有收到訊息,就發送探測報文段,定時的發N個,如果還沒有收到響應,就認為是客戶除了故障,終止串連4、持久計時器(persistence