socket通信三次握手连接四次断开

本文详细介绍了TCP协议中连接建立的三次握手过程,包括客户端发起连接请求、服务器响应确认、客户端再次发送连接请求并成功连接。同时,解释了断开连接的四次挥手过程,涉及双方交替发送断开请求和确认,最终完成关闭连接。通过示例代码展示了在Linux socket通信中的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,三次握手连接

A发起连接请求,问B是否可以连接了 第一次

B接到A的请求,告诉A,我有空可以连接 第二次

A收到B的可以连接的答复,正式发起来连接 第三次


表现在linux的socket通信中,客户端的connect函数和accept函数的通信中。

客户端:调用connect函数发起连接请求,第一次,而后connect函数处于阻塞状态

服务器:循环accept函数监听客户的connect请求,收到请求后,发送可以连接的恢复,而后accept函数处于阻塞状态。

客户端:收到服务器端的可以连接的回复后,connect函数发送连接请求到服务器,connect函数返回连接成功。

服务器:收到客户端的连接后,创建临时socket和客户端通信并返回.


可以看出在该过程中,总共有三次数据的传送。


2,四次握手断开

A发起断开请求,问B是否可以断开了 第一次

B回复A可以断开,第二次

B断开和A的连接,并发送数据给A,和A断开连接 第三次

A收到B的回复和断开连接,也断开连接,并发送数据给B,和B断开连接 第四次。



示例:

server.c

#include <stdio.h>
#include <sys/socket.h>
#inc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值