day08 多线程socket 编程,tcp粘包处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day08 多线程socket 编程,tcp粘包处理相关的知识,希望对你有一定的参考价值。

 

服务端:
 
1 声明socket 实例
server = socket.socket()  #括号里不写  默认地址簇使用AF_INET  即 IPv4       默认type 为 sock.SOCK_STREAM 即 TCP/IP 协议   技术分享
2 绑定IP地址和端口
server.bind((‘localhost‘,9999))  #ip地址和端口  元组形式 ,端口为整数形式
 
3 开始监听
server.listen()
 
4 进入阻塞状态,等待连接进入
######## 从这里开始可以加入循环,循环不同的连接 ,这样就可以接受不同的客户端的连接了#####
#while True:
 
技术分享  # 获取客户端ip地址和端口  开启一个连接实例
 
 
##############  从这里开始循环,这样就可以循环收到客户端数据,但是只收这一个客户端 ###########
##客户端一断开,conn收到的就全为空数据,这样就进入了一个死循环,所以需要一个if 判断
#while True:
5 收数据
data = conn.recv(1024)  #接收最大数据量, 官方建议最大8192  写整数据
# 这里加入if 判断
# if not data:
#    break
print(data)
 
6 可以往回发送数据
conn.send(data.upper()) #可以发送任何数据,这里把收到的变为大写
 
7 server.close()
 
  
客户端:
1 声明socket 实例:
client= socket.socket()
2 连接服务端:
client.connect((‘server_ip‘,9999))   #连接服务端的ip及端口 元组形式 ,端口为整数形式
3 发数据
client.send(data)   #发送数据,任意数据
# 4 收取服务端返回的数据
#   recv_data = client.recv(1024)

 

以上是关于day08 多线程socket 编程,tcp粘包处理的主要内容,如果未能解决你的问题,请参考以下文章

day18-socket 编程

查漏补缺:socket编程:TCP粘包问题和常用解决方案(上)

python/socket编程之粘包

Day476.TCP粘包和拆包及解决方案 -netty

Day476.TCP粘包和拆包及解决方案 -netty

python学习_day30_基于tcp协议的粘包现象