基于TCP通信的套接字

Posted layerluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于TCP通信的套接字相关的知识,希望对你有一定的参考价值。

基于tcp通信的套接字必须先启动服务器再去启动客户端去链接服务器

客户端

技术分享图片

服务端

技术分享图片

这只是基于tcp通信的一个简单的套接字  只能进行一次的通信

 

 

 服务端                                                                                                 客户端

技术分享图片技术分享图片

这是能多次通信的套接字

 

 

 在阻塞前添加一个循环就能实现一个链接循环

技术分享图片

 

服务端

技术分享图片

客户端

技术分享图片

这是模拟ssh实现远程执行命令

 

 

 粘包问题

二、两种情况下会发生粘包。

1.发送数据时间间隔很短,数据了很小,会合到一起,产生粘包

2.接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段数据,服务端只收了一小部分,服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包)

客户端

技术分享图片

服务端

技术分享图片

 

之前的ssh远程执行命令一直会有粘包问题存在 用struct模块能很好的解决粘包问题

服务端

技术分享图片技术分享图片

 

客户端

技术分享图片

 

以上是关于基于TCP通信的套接字的主要内容,如果未能解决你的问题,请参考以下文章

基于套接字通信(tcp)

Python 基于TCP协议通信的简单套接字编程

Python 基于TCP协议通信的简单套接字编程

基于tcp的socket通信

Learning-Python28:基于TCP协议通信的套接字

tcp连接是基于socket通信的吗