傳智掃地僧課程學習筆記。
實驗1,
執行之前的伺服器程式後,
再執行乙個,
實驗2,
執行伺服器程式,執行客戶端程式,
然後結束伺服器程式,
注意了啊,這時候你再開啟伺服器程式,會提示和上面一樣的錯誤,
這時候你用 netstat -na | grep 8001,
這時候,仍然有資訊回來,
如下,結論就是,處於類似的狀態你,你再次啟動伺服器程式,無法啟動,
所以有這樣乙個技術,
setsockopt,在bind之前呼叫,
之後你再啟動伺服器程式,就不會提示錯誤了,
不過這時候估計是因為之前的連線已經斷了,所以你繼續從客戶端發資訊,會沒有回應,
這時候你重新啟動客戶端,就又像之前一樣正常收發資料了,
int optval = 1;
if (setsockopt(sockfd, sol_socket, so_reuseaddr, &optval, sizeof(optval))
< 0)
if( bind( sockfd, (struct sockaddr *)&srvaddr, sizeof( srvaddr)) <0)
socket 程式設計的埠和位址復用
int opt 1 if setsockopt sockfd,sol socket,so reuseaddr,const void opt,sizeof opt so reuseaddr允許啟動乙個監聽伺服器並 其眾所周知埠,即使以前建立的將此埠用做他們的 本地埠的連線仍存在。這通常是重啟監聽伺服器...
Socket程式設計 I O復用
之前基礎部分的socket流程是伺服器與客戶端之間是一對一的情形,但是,在實際情況下基本是多客戶端對一台伺服器,如何解決伺服器同時收到多個客戶端請求?基本上,這一類的需求就需要用到i o復用的技術。以下筆記詳情請參考 網路程式設計 卷一 i o復用典型使用場合 1 伺服器同時處理多個客戶套接字請求 ...
Linux系統 socket埠復用
1 埠復用 埠復用最常用的用途是 設定方法 int opt 1 so reuseaddr,setsockopt sockfd,sol socket,const void opt,sizeof opt 注意事項 為什麼要有這個埠復用呢 因為在服務端結束後,也就是第三次揮手的時候會有個等待釋放時間,這個...