网络编程中客户端与服务器的搭建与协议包应用

1.客户端的搭建

2.服务器搭建

3.TCP中的粘包现象

tcp协议为了提高发送的效率,会将短时间连续发送的小数据,当做一组数据统一发送

原理是:

tcp协议本身存在一个1500字节的缓存区,tcp协议每次write发送数据的时候,总是会发送1500个字节

如果发送了n组数据,这n组数据的时间间隔很短,并且数据总大小没有超过1500个字节

那么TCP协议就会将这n组数据全都放到同一个1500字节的缓存区中去,统一发送。

4.协议包

规定好一组数据的固定大小,以及一组数据里面每个数据占据多少个字节

然后服务器和客户端,全都遵循同样的规定实现数据的收发

这样的规定如果我们把它打包写成具体的代码,打包出来的成果我们就称为协议包。

由于协议包无法解决按字节数输出我们在终端输入的字符串,所以在协议包的基础上再定义缓存区和变量存放输入的字符串的字节数和内容,当读取到指定字节数内容后进行输出就可以解决。

相关推荐
千航@abc1 分钟前
Win10/Win11 DCOM服务器进程启动器 CPU 占用过高解决方法
运维·安全·病毒·window10·window11·dcom进程·系统进程资源占用高
hwj运维之路9 分钟前
Docker面试题汇总系列
运维·docker·云原生·容器
蜡笔小炘10 分钟前
LVS -- 部署NAT模式集群案例
linux·运维·服务器·lvs
翼龙云_cloud10 分钟前
阿里云渠道商:如何优化阿里云弹性伸缩的性能?
服务器·阿里云·云计算
我怎么又饿了呀10 分钟前
CentOs 10 虚拟机安装【解决方法】VMware无法打开内核设备,未能启动虚拟机
linux·运维·centos
冰冰的coco16 分钟前
如何设置需要sudo的命令开机自启动
linux·运维·服务器
辞旧 lekkk18 分钟前
【Linux】Linux进程控制(三)自主实现简易shell命令行解释器
linux·运维·服务器·学习·萌新
HIT_Weston29 分钟前
119、【Ubuntu】【Hugo】首页板块配置:Template Lookup Order
linux·运维·ubuntu
wangt595232 分钟前
Ubuntu22.04.5的网络配置在重启后被重置的问题
linux·运维·服务器
不被定义的程序猿33 分钟前
如何使用docker搭建一个 aarch-linux-gun-gcc的交叉编译环境
linux·运维·服务器