linux网络编程常用函数说明
connect函数
int connect (int sockfd,struct sockaddr * serv_addr,int addrlen);
(1)connect之前调用bind不是必须的,内核会分配ip以及临时port;
(2)connect调用后,会发送SYN分节,如果没有收到SYN-ACK分节,则返回ETIMEOUT;
底层细节说明:发送SYN,6s后未收到SYN-ACK,则再发送一个SYN,24s后未收到SYN-ACK,则再发一个SYN。共等待75s后仍未收到响应,则ETIMEOUT;(如connect一个子网内未分配的ip)
对工程的启示:阻塞connect,在后端挂掉的情况下,75s才返回,这个过程中,有可能阻塞所有工作线程或IO线程;
(3)connect调用后,如果得到的响应是RST,则
热门工具 换一换