1.概述
linux网络编程中,一般是客户端调用connect函数,该函数将引起操作系统的tcp协议向远端的服务器执行三次握手的过程,分为两种情况进行说明,一种是connect的第一个参数文件描述符是非阻塞的.一种是该文件描述符是阻塞的.
2.阻塞情况
当该文件描述符是阻塞的时候,那么connect调用也必然是阻塞的,只有当连接上或者连接失败时返回,意味着connect返回时仅有两种情况,已经连接上,返回0,连接失败返回-1.
当connect远端主机处于网络断开的时候,这时候当前主机会向远端主机连续发送8次syn报文,间隔时间1,2,4,8…当超过75秒后,connect返回,errno 被设置为相应值,实验结果如下:
当远端主机网络连通时,如果主机没有在相应的端口上进行监听,那么该主机将直接返回rst包,connect返回.