Linux网络编程之TCP相关

目录

    • TCP连接建立
      • 服务器端
      • 客户端
    • TCP断开连接
    • 一些细节:
      • 1.文件描述符的阻塞非阻塞问题
      • 2.三次握手发生在哪步
      • 3.关于 listen 第二个参数 backlog
      • 4.通信的一端断开会怎样
      • 5.shutduwn 和 close
      • 6.RST包
      • 7.发送速度高于对方接收速度
      • 8.压测时客户端收到大量rst
    • 总结
    • 参考

最近在学习一些Linux网络编程,这里整理一下TCP相关内容

TCP连接建立

建立连接需要三次握手,对应的socket编程如下(忽略了异常处理):

服务器端

#include 
#include 

// 1.创建套接字
int serverSockfd = socket(AF_INET, 
						  SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 
						  IPPROTO_TCP);

// 2.绑定端口
const char* ip = "127.0.0.1";
struct sockaddr_in addr;
addr.sin_family = AF_INET;      // ipv4
inet_pton(AF_INET, ip, &addr

你可能感兴趣的:(Linux,网络,linux,c++,TCP)