3次握手:
synsyn ack
ack這3次是系統之間的互動,應用程式不需要關心
如果伺服器端沒有工作,只有 兩個響應:
synrst ack
要求進行重置,客戶端就不會請求了。
send模式下阻塞與非阻塞:
試想 發生了同時呼叫socket進行傳送的執行緒,其中乙個傳送非常大的資料導致socket buffer 全都是資料,不能放入新的資料。此時,如果是阻塞模式試圖傳送,它會停在這裡,等待buffer有可用的空間。非阻塞模式socket一看,滿了,於是便 立即返回。
3次握手以後,client發出http get url請求,server進行處理後,準備呼叫
send(...)
此 時,斷開client的網線,send是否成功????
成功!並且返回傳送的資料大小。表示進入socket buffer。如果不斷開網線,client就會返回ack,斷開則沒有此資料。send後立即繼續執行。資料一旦被傳送,client被斷開,資料會 re-transmit, 最後timeout。
以後繼續補充。
Socket經驗記錄
1 為了增加效率,可以考慮採用無異常的函式 在.net2.0中socket.send,socket.receive 有了無異常的函式 socket.send byte,int32,int32,socketflags,socketerror socket.receive byte,int32,int3...
使用socket套接字時的兩點經驗
使用socket套接字時的兩點經驗 最近我在使用socket程式設計的工作,總結了2點經驗,希望和大家分享一下。由於是菜鳥,有不對的地方還希望多多指教。第一點經驗就是在建立新的套接字之前還需要呼叫乙個引入ws2 32.dll庫的函式。否則伺服器和客戶端連不上。由於初次使用socket,所以查了很多資...
一些socket的程式設計經驗
沒有逐條實踐,先收藏,歡迎交流。1.如果在已經處於 established狀態下的socket 一般由埠號和標誌符區分 呼叫closesocket 一般不會立即關閉而經歷time wait的過程 後想繼續重用該socket bool breuseaddr true setsockopt s,sol ...