我在Linux下運行的C++程序中有一個UDP文件描述符。我呼叫connect()
將它連接到一個遠程地址,然後從該套接字讀取和寫入。什麼時候連接的UDP套接字會被OS關閉?
根據UNIX網絡編程,「異步錯誤返回到連接的UDP套接字的進程」。我猜測這些異步錯誤會導致操作系統關閉UDP套接字,但這本書並不清楚。也不清楚哪種類型的異步錯誤是可能的,儘管建議如果遠程機器上的端口未打開,套接字將被關閉。
所以我的問題是:在什麼情況下Linux會關閉UDP文件描述符?
- 壞端口號?
- 錯誤的IP地址?
- 其他?
UDP套接字無法連接,請檢查http://en.wikipedia.org/wiki/Berkeley_sockets#Client_2 – bobah 2011-04-28 19:13:04
不,他們可以 - 閱讀connect()的手冊頁:「如果s是SOCK_DGRAM類型,它會永久性地指定發送消息的對等體。「正如我在問題中提到的那樣,_UNIX網絡編程_指出將爲所連接的UDP套接字返回異步錯誤_will_。 – 2011-04-30 04:07:43