[實驗]關閉TCP監聽套接字對已建立連線的影響
阿新 • • 發佈:2018-12-13
先說結果吧,結果是無影響,已建立的連線依然可以正常使用。
實驗環境
windows10,vs2010
實驗過程
伺服器採用VC程式設計,客戶端使用TCP除錯軟體。
伺服器工作流程
1、建立監聽套接字socket1,繫結埠17000。
2、使用listen函式監聽socket1。
3、使用accept函式從socket1接受連線,得到一個新的套接字socket2。
4、關閉socket1。
5、使用recv函式從socket2接收資料,處理,回覆。
客戶端工作流程
1、建立TCP套接字socket3。
2、socket3使用connect函式連線伺服器,目標埠為17000。
3、使用send函式從socket3傳送資料。
4、使用recv函式從socket3接收資料。
實驗結果
1、socket3可以正常傳送和接受資料。
2、關閉socket1之後,如果客戶端建立socket4,再使用socket4連線伺服器,則無法建立連線。
3、關閉socket1之後,伺服器可以建立socket5,繫結埠17000,使用listen函式監聽socket5,使用accept函式從socket5接受連線,socket2和socket3之間的通訊不受影響。
4、關閉socket1之後,其它程序也可以建立socket5,按第3條的方法使用,socket2和socket3之間的通訊不受影響。
---------------------------------------------EOB-----------------------------------------------------