我們在利用iocp(完成埠)進行程式設計的時候,經常要關閉一些不滿足條件的套接字。假如我們直接採用closesocket方法進行關閉的話,繫結到io埠的此套接字的未傳送的資料就會丟失,這種情況是我們不願意發生的。下面介紹一種合理關閉此套接字的方法:
首先,利用setsockopt(msdn)函式設定套接字的選項,我們把此套接字設定為:假如有資料未傳送,當資料傳送完後再關閉此套接字。
**如下:
void cclientsocket::disconnect()
優雅關閉socket的方法 SO LINGER
這個引數對應大量短鏈結的伺服器很有必要!shutdown fd,shut rdwr struct linger linger linger.l onoff 1 linger.l linger 0 setsockopt fd,sol socket,so linger,char linger,sizeo...
如何優雅地關閉乙個socket
如何優雅地關閉乙個socket 1.關閉socket時究竟做了什麼 關閉socket分為主動關閉 active closure 和被動關閉 passive closure 兩種情況。前者是指有本地主機主動發起的關閉 而後者則是指本地主機檢測到遠端主機發起關閉之後,作出回應,從而關閉整個連線。其狀態圖...
TCP中的優雅關閉和非優雅關閉
優雅關閉 其實就是正常的四次揮手 非優雅關閉 向對端傳送乙個rst報文直接進入closed狀態 伺服器為了避免太多time wait的關閉方式 1.保證由客戶端主動發起關閉 2.關閉的時候使用rst的方式 3.對處於time wait狀態的tcp允許重用 一般我們當然最好是選擇第一種方式,實在沒有辦...