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粘包处理的主要内容,如果未能解决你的问题,请参考以下文章