如果是TCP套接字,調用connect函數將激發TCP三次握手過程,而且僅在連接建立成功或出錯時返回,其中錯誤返回可能有下面幾種情況:
(1)若TCP客戶沒有收到SYN分節的響應,則返回ETIMEDOUT 75s
(2)若對客戶端的SYN的響應是RST(表示復位),會返回ECONNREFUSED
(3)若客戶發出的SYN在中間的某個路由器上引發了一個"destination unreachable"的ICMP錯誤,則認為是一種軟錯誤,會按第一種情況重發,如果還收不到會返回EHOSTUNREACH或ENETUNREACH,有兩種情況,一種是找不到路由表,另一種是connect根本不等待就返回。