今天根據《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...