TCP IP網路編學習筆記 三

2021-10-09 09:17:04 字數 689 閱讀 3481

可以設定tcp或udp通訊的輸入緩衝大小和輸出緩衝大小,但是最終大小並不一定是你所設定的大小;

如果服務端先close,或者說先發出fin訊息表示分手,則服務端斷開連線後,在短時間內無法再次bind相同的埠,因為上一次繫結此埠的socket處於time-wait過程中,還未被銷毀(不過此時客戶端是沒有time-wait過程的,客戶端一旦收到最後服務端發來的fin訊息後,就立即銷毀對應的socket了)。所以你就會發現,服務端強制退出程式或者ctrl+c後,立即重新執行服務端會出錯,要等幾分鐘才行。這就是因為指定埠被占用了。而客戶端如果是先close,最後雖然客戶端也會有time-wait過程,但是客戶端每次啟動後使用的埠都是隨機的,因此沒問題;

solsocket協議層下的so_reuseaddr設定為1(注意,使用bool型別,是1位元組)就可以讓處於time-wait狀態下的套接字的埠可以被新的套接字所使用;

shutdown()函式不僅可以給對方傳輸eof符號(從而使對方的read函式返回0,結束read操作,此外,直接close套接字也會給對方傳送eof),而且可以選擇性關閉某個連線(輸入連線或者輸出連線);

shutdown()的作用:1). 傳送eof;2). 關閉乙個或兩個tcp連線。

TCP IP網路程式設計學習筆記 十三

io完成埠模型的實現要點 建立乙個io完成埠物件 簡稱cp物件 控制代碼 使用createiocompletionport 建立 使用wsarecv 或者wsasend 進行非同步io操作,操作完成後,系統自動啟用getqueuedcompletionstatus 函式,進而啟用某個執行緒去處理。注...

linux網路程式設計學習筆記 select程式設計

網路上常見的一張tcp狀態轉換圖,實線是主動端,虛線是被動端 關於select用法 include according to earlier standards include include include int select int nfds,fd set readfds,fd set wri...

Linux網路程式設計學習筆記 TCP IP基礎 1

層級名稱 作用傳輸單位 應用層提 用程式間通訊 表示層處理資料格式,資料加密等 ppdu presentation 會話層建立,維護和管理會話 spdu session 傳輸層建立端到端鏈結 segment 段 網路層定址和路由選擇 packet 包 資料鏈路層 介質訪問,鏈路管理 frame 幀 ...