tcp
专注云吸猫开发
c++开发,编程爱好者
展开
-
tcp的三次挥手和四次握手
TCP的三次挥手和四次握手TCP之所以要用三次握手,主要为了完成如下几个目标1)防止旧的SYN生效,比如 原来发出的SYN ,由于网络环境比较差,一直没有发送到服务端,客户端又发出了新的SYN, 这时候,如果旧的SYN ACK已经返回,那么,client就要回复一个RST给到服务器端,因为新SYN已经发出了,如果没有 三次握手,那么就可能造成多次连接的存在2)同步双方的序列号四次挥手:四次挥手的过程:首先 主动断开的一方,发送FIN 报文,进入FIN_...原创 2021-03-11 17:13:29 · 170 阅读 · 0 评论 -
sockaddr和sockaddr_in的区别
sockaddr的定义如下struct sockaddr{sa_family_t sin_family; //地址族char sa_data[14]; //14字节,包含套接字中目标地址和端口信息}sockaddr_instruct sockaddr_in{sa_family_t sin_family; //地址族uint16_t sin_port; //16位 TCP/UDP 端口号struct in_addr sin_addr; //32位I原创 2020-07-25 17:51:56 · 113 阅读 · 0 评论 -
FD_CLOEXEC
为什么socket要设置 FD_CLOEXEC ,原因就是主线程在fork子线程的时候,会把文件描述符也拷贝一份,当子线程在执行exec的时候,执行新的程序,而文件描述符并没有被关闭,由于在内核里面保存有文件描述符数量的引用计数,那么,如果不在exec被调用之前关闭文件描述符,那个该文件描述符就会出现没有被关闭的情况。...原创 2020-07-12 15:22:41 · 482 阅读 · 0 评论 -
为什么要忽略SIGPIPE信号
在socket编程中,要忽略SIGPIPE信号,这是因为,如果socket的对方已经关闭连接而我方依然在写入的情况下,会导致进程退出,因此要忽略该信号原创 2020-07-12 11:48:50 · 487 阅读 · 0 评论