原创 異步信號驅動IO實現回射服務器

#include "unp.h" #include <signal.h> /*server */ #define QSIZE 10 struct DG{ void *data; size_t datalen; struct so

原创 雙向鏈表實現線程池 用於TCP併發連接

簡述:自我感覺對C指針瞭解的還是比較透徹,能夠運用自如,一方面練習一下多線程編程,另一方面練習一下數據結構鏈表。 但是完成的過程中,各種問題還是撲面而來,共花了2個小時完成了此線程池來實現TCP併發連接,創建固定數目的線程 時間倉促,可能

原创 形參定義成指定大小的數組

今天在百度知道上看見一個問題。 類似 char *func( char str[10]) {        printf(“len= %d\n”, sizeof(str)); } int main() {        charstr[1

原创 UDP 超時重傳機制

問題來源: 老式方法:UDP傳輸設定超時未N秒,發送一個請求後等待N秒鐘,若超時都沒有收到確認,則重發請求,重發一定次數後便丟棄。 老式方法不合理的原因:由於網絡上影響因素的不同,可能RTT差別較大,設定一個固定的超時時間使資源不能得到合

原创 利用Unix域套接字實現IPC

寫完後,至少調試了30分鐘時間。 錯誤1: snprintf(argsockfd, sizeof(argsockfd), "%d", sockfd[1]); snprintf(argmode, sizeof(argmode), "%d"

原创 兩個指針之美

無意中看見了這篇帖子。感覺寫的還不錯。尤其是求鏈表中倒數第K個節點,其他技巧都是一些比較常見的思路了,不過也能帶給我更多的思考。 源:http://blog.csdn.net/dlengong/article/details/741842

原创 尋找第K小元素O(N)算法

快速排序時間複雜度:O(n*lgn) 但是沒必要完整排序後再O(1)選出第k元素。 思想:利用快排分區思想,分界點爲q,左邊的數小於等於q,右邊的數大於q這個規則。如果k小於左邊區間個數則以左區間遞歸,否則在右區間遞歸。 #includ

原创 簡易ping程序

當我把icmp的檢驗和設置成0時,ping百度是可以有echo返回。但是ping其他主機是沒有返回響應。 手動添加檢驗和後正常。 原因:可能是baidu服務器並沒有檢測校驗和就返回一個echo,這樣可以減少服務器的負擔。 而其他一些站點都

原创 源路徑選項

1. V4,V6頭部差異 IP源路徑選項: 對於IPV4,由於IP頭部長度字段爲4位,最大可以表示15,那麼限制了IPV4的頭部總長度爲15*4 = 60字節。前10字節爲固定的頭部部分,所以最多有40個字節用來填充選項字段。 對於IPV

原创 糊塗窗口綜合症

什麼是糊塗窗口綜合症 當發送端應用進程產生數據很慢、或接收端應用進程處理接收緩衝區數據很慢,或二者兼而有之;就會使應用進程間傳送的報文段很小,特別是有效載荷很小。 極端情況下,有效載荷可能只有1個字節;而傳輸開銷有40字節(20字節的

原创 B 樹、 B- 樹、 B+ 樹、 B* 樹都是什麼

http://blog.csdn.net/w174504744/article/details/7419017 B樹       即二叉搜索樹:       1.所有非葉子結點至多擁有兩個兒子(Left和Right);       2.所

原创 學習筆記:對Tcp擁塞,超時重傳的一些理解

僅供個人筆記,不能保證正確 #include "unp.h" extern int c_window, allow_window; extern int RTO; extern int *point1, *point2, *p

原创 C語言中static相關

1.      對於全局static變量, 初始化:首先是全局變量,被初始化爲0,其次是static也被初始化爲0; 存放位置:存放於內存的靜態區。 作用域:開始於定義位置,終止於文件的結尾。 本文件之內在沒有定義此static全局變量

原创 簡單進程池實現多TCP客戶服務

根據預定義進程數創建進程池。 父子進程通信使用的IPC方式爲:UNIX域套接字 父進程listen,aeecpt,並將連接套接字發送到子進程,交由子進程處理該連接。 子進程處理完畢,與父進程通信,實現資源回收,並在下一連接到來交由該完畢的

原创 校驗和總結

1:IP校驗和只校驗20字節的IP報頭,並不會計算數據部分的校驗和。因爲IP也是不可靠,盡最大努力投遞。 2:ICMP校驗和覆蓋整個報文(ICMP報頭+ICMP數據); 3:UDP和TCP校驗和不僅覆蓋整個報文(頭部+數據),而且還有12