使用UDP协议多个客户端依靠服务器进行聊天
- 思路 : 当服务器接收到某个客户端的信息后再转发给所有客户端
服务器代码:
import socket
def server():
server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(('127.0.0.1',12345))
clientlist = []
while True:
data,con = server.recvfrom(1024)
text = '{0} say : {1}'.format(con,data.decode())
if con not in clientlist:
clientlist.append(con)
for i in clientlist:
server.sendto(text.encode(),i)
if __name__ == '__main__':
server()
客户端代码
import socket
def client():
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
str = input('please input word:')
data = str.encode()
client.sendto(data,('127.0.0.1',12345))
data, con = client.recvfrom(1024)
print(data.decode())
if __name__ == '__main__':
client()
- 缺点: 此程序只能在客户端输入消息后才能接收服务器端返回的消息