同步socket, 异步socket, 多线程socket, 多进程socket

同步socket, 异步socket, 多线程socket, 多进程socket,第1张

socket常用,本文立足同步和异步socket,以及现有的socketserver库。

同步socket一般有利用socket库直接,就可以写出tcp或udp的套接字

socketserver提供的线程或进程方式的socket

利用python 35+的asyncio协议,封装一个协程的socket server ,普通的socket客户也可以连接。

服务器端

客户端

为字节流加上自定义固定长度报头,报头中包含字节流长度,然后一次send到对端,对端在接收时,先从缓存中取出定长的报头,然后再取真实数据

构造报头信息

服务端

客户端

粘包,分包都tcp
tcp为什么会有粘包分包这些情况:
1服务端处理不过来
2客户端采用优化纳格尔算法,达到一定字节才发
怎么处理:
1 客,服双方确定包头规范,根据包头的信息取包长度
2 客户端发送带上标记位,如\n, 服务端根据标记取包

服务器端

客户端

服务器端

客户端

服务器端

客户端

封装了socket,而且解决了Io阻塞问题

服务端

客户端

客户端

参考:
>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10750565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存