TCP通信
TCP:传输层协议
特点:面向连接的安全的流式传输协议
面向链接 :
连接:三次握手,建立双向链接
断开:四次挥手,双向断开
安全的:通信过程会对通信进行校验,判断对方有没有接受到发送的数据,如果没有接受(数据丢失)会对数据进行重传
服务器流程:
1.创建一个套接字 ,这个套接字就是文件描述符
int lfd =socket();
返回值就是一个文件描述符
2.让监听的文件描述符和本地的ip+端口进行绑定
绑定成功之后。lfd就可以检测到有没有客户端连接请求了
bind();
3.给绑定成功的套接字设置监听(上岗了
listen();
4.等待并且接受客户端连接(无连接阻塞等待,有连接解除阻塞),得到新的描述符用于通信的文件描述符
int cfd=accept();
5.使用accept返回值对应的通信文件描述符和客户端通信
接受数据
read();
recv();
发送数据
write ();
send();
6.断开连接,关闭文件描述符(可以关闭监听,也可以关闭通信)
close();
文件描述符 fd 和内核进行关联,一个是读一个是写
客户端通信流程
1.创建用于通信的套接字==(文件描述符)
int fd =socket();
2.使用得到的通信文件描述符连接服务器,通过ip和端口去找
connect();
3.连接成功可以通信
接受数据
read();recv();
发送数据
write();
send();
4.断开和服务器端链接
close();