如果是TCP套接字,调用connect函数将激发TCP三次握手过程,而且仅在连接建立成功或出错时返回,其中错误返回可能有下面几种情况:
(1)若TCP客户没有收到SYN分节的响应,则返回ETIMEDOUT 75s
(2)若对客户端的SYN的响应是RST(表示复位),会返回ECONNREFUSED
(3)若客户发出的SYN在中间的某个路由器上引发了一个"destination unreachable"的ICMP错误,则认为是一种软错误,会按第一种情况重发,如果还收不到会返回EHOSTUNREACH或ENETUNREACH,有两种情况,一种是找不到路由表,另一种是connect根本不等待就返回。