设计一个在线聊天程序,要求具又服务端和客户端,支持多人同时聊天,UDP模式。

#服务端
#服务端
import socket

# 准备聊天
server=socket.socket(type=socket.SOCK_DGRAM)
#接收聊天的ip地址(聊天室),win+R > ipcondif 获得地址
server.bind(("172.26.29.83",12167))

#建立一个列表用于存贮聊天人数的地址
clients=[]
while 1:
    #从各个客户端接收聊天的信息和地址
    data,addr=server.recvfrom(1024)
    #判断接收到的地址是否出现过,没有出现过则加入进地址列表中
    if addr not in clients:
        clients.append(addr)
        #输出该新地址
        print(clients)
    #在聊天室打印接收到的信息
    print(data.decode())
    #返回接收到的信息
    for client in clients:
      server.sendto(data, client)

#*****************************************************************
#*****************************************************************

#客户端
#客户端
import socket

client = socket.socket(type=socket.SOCK_DGRAM)
wf=("172.26.29.83",12167)
#加入要聊天的聊天室ip地址及端口号
# server=("127.0.0.1",12167)

while 1:
    #输入要发送的信息
    input_data="wf:"+input("wf:")
    #向聊天室发送要发送的信息
    client.sendto(input_data.encode(),wf)#直接发送到server端
    #用于接收发送成功后的返回值
    data = client.recv(1024).decode()  # 接收severe端发来的数据
    print(data)#输出server端接收来的数据

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值