同步socket一般有利用socket库直接,就可以写出tcp或udp的套接字
socketserver提供的线程或进程方式的socket
利用python 35+的asyncio协议,封装一个协程的socket server ,普通的socket客户也可以连接。
服务器端
客户端
为字节流加上自定义固定长度报头,报头中包含字节流长度,然后一次send到对端,对端在接收时,先从缓存中取出定长的报头,然后再取真实数据
构造报头信息
服务端
客户端
粘包,分包都tcp
tcp为什么会有粘包分包这些情况:
1服务端处理不过来
2客户端采用优化纳格尔算法,达到一定字节才发
怎么处理:
1 客,服双方确定包头规范,根据包头的信息取包长度
2 客户端发送带上标记位,如\n, 服务端根据标记取包
服务器端
客户端
服务器端
客户端
服务器端
客户端
封装了socket,而且解决了Io阻塞问题
服务端
客户端
客户端
参考:
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)