網路程式設計小記

2021-08-20 11:23:30 字數 426 閱讀 3816

tcp異常斷開

tcp異常斷開是指在突然斷電,直接拔網線等等情況下,如果通訊雙方沒有進行資料傳送通訊等處理的時候,無法獲知連線已經斷開的情況.

應用層心跳

在通常的情況下,為了使得socket通訊不受作業系統的限制,需要自己在應用層實現心跳包機制,來檢查異常斷開的情況,一般的方式就是伺服器在一段時間沒有收到客戶端資料報時,定時發包,然後客戶端回應,如果已經出現異常斷開則伺服器接收會返回錯誤,而客戶端在指定時間內沒有收到資料報,則主動向伺服器發包,得到錯誤就說明斷開.諸如此類的方式就是自己實現的心跳包機制.

tcp棧心跳機制

但作業系統本身也自帶了一些心跳包機制,這些機制是由socket的tcp棧底層實現的,不會影響應用層通訊,也不需要應用層自己處理,發現異常斷開可以自行檢查出來並返回錯誤(它的本質也是在空閒時傳送心跳包).

close_wait

socket程式設計小記

網路程式設計課上學習了一些socket函式,在c語言下和mfc下小結一下 首先socket的五元組有 源ip,目標ip,源埠,目的埠,協議 總的來說socket分為幾個步驟,對於客戶端 1.初始化 2.建立socket結構,填充如tcp udp型別,ipv4結構等 3.建立目標ip的位址,目的埠資訊...

socket程式設計小記

1.在寫乙個原始套接字程式設計的過程中查到的知識點 建立原始套接字之後,就可以使用sendto 和recvfrom 傳送和接收icmp資料報了。原始套接字接收報文規則 若接收的報文協議型別和定義的原始套接字匹配,那麼接收的所有資料拷貝入套接字中 如果套接字繫結了本地位址,那麼只有接收資料ip頭中對應...

socket程式設計小記

前言 winsock是由unix下的bsd socket發展而來,是乙個與網路協議無關的程式設計介面。標頭檔案 include 引用庫 pragma comment lib,ws2 32.lib 引數 wversionrequested 版本資訊。高階位元組指定小版本號,低位位元組指定主版本號。lp...