标签:imp 允许 else nec decode 最大 rgs recv 多进程
实现多个客户端同时接入server端,并且可以同时向客户端发送信息
server端
def dunc(conn,client_addr):
while True:
data=conn.recv(1024)
print(data,client_addr)
if data.decode('utf8')=='nihao':
conn.send('我一点都不好'.encode('utf8'))
elif data.decode('utf8')=='chifanma':
conn.send('去吃什么?'.encode('utf8'))
else:
conn.send(data.upper())
if __name__ == '__main__':
import socket
from multiprocessing import Process
server=socket.socket()
server.bind(('127.0.0.1',8080))
server.listen()
print('start...')
while True:
conn,client_addr=server.accept()
p=Process(target=dunc,args=(conn,client_addr))
p.start()
client端
import socket
client=socket.socket()
client.connect(('127.0.0.1',8080))
while True:
msg=input('请输入你要发送的信息:')
if not msg:
continue
client.send(msg.encode('utf-8'))
data=client.recv(1024)
print(data.decode('utf-8'))
需要注意的是:1. 根据TCP内部算法,发送端发送内容为空的时候,不会发送,但是会往下执行;接收端则会一直卡在recv处;所以需要进行一个是否为空的判断。
标签:imp 允许 else nec decode 最大 rgs recv 多进程
原文地址:https://www.cnblogs.com/zhoajiahao/p/11128317.html