網路程式設計之listen與bind

2021-07-11 23:47:48 字數 461 閱讀 9836

今天根據《unix 網路程式設計》(卷1)第四章的4.4和4.5的習題要求:嘗試把服務端的listen和bind分別去掉,看看會發生什麼

首先把listen去掉,然後我發現我竟然這麼做了,開始真是嚇死,螢幕一直滾,不斷地刷屏啊,因為我讓服務端列印來自客戶端的套接字、ip位址和埠資訊,一直刷的是:

「client_fd : -1 ,ip: 220.241.101.0, port is 0」

這麼乙個玩意,我網上搜了一下這個ip位址,都跑到香港去了。這就是不監聽的後果,一直accept -1這麼乙個錯誤的套接字。

然後我嘗試了恢復listen然後把bind去掉,這麼一來肯定不知道服務端的ip和埠號了,那麼讓服務端用getsockname返回他的ip位址和埠號,發現返回的ip為0.0.0.0 ,埠號為: 0, 然後我用客戶端去連線這個ip和埠號,提示connection refused。

這是為什麼捏?這個我也不知道了

網路程式設計socket之listen函式

listen函式使用主動連線套介面變為被連線套介面,使得乙個程序可以接受其它程序的請求,從而成為乙個伺服器程序。在tcp伺服器程式設計中listen函式把程序變為乙個伺服器,並指定相應的套接字變為被動連線。listen函式在一般在呼叫bind之後 呼叫accept之前呼叫,它的函式原型是 inclu...

網路程式設計socket之listen函式

摘要 listen函式使用主動連線套介面變為被連線套介面,使得乙個程序可以接受其它程序的請求,從而成為乙個伺服器程序。在tcp伺服器程式設計中listen函式把程序變為乙個伺服器,並指定相應的套接字變為被動連線。listen函式在一般在呼叫bind之後 呼叫accept之前呼叫,它的函式原型是 in...

網路程式設計socket之listen函式

摘要 listen函式使用主動連線套介面變為被連線套介面,使得乙個程序可以接受其它程序的請求,從而成為乙個伺服器程序。在tcp伺服器程式設計中listen函式把程序變為乙個伺服器,並指定相應的套接字變為被動連線。listen函式在一般在呼叫bind之後 呼叫accept之前呼叫,它的函式原型是 in...