1. 程式人生 > >[實驗]關閉TCP監聽套接字對已建立連線的影響

[實驗]關閉TCP監聽套接字對已建立連線的影響

先說結果吧,結果是無影響,已建立的連線依然可以正常使用。

實驗環境

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-----------------------------------------------------