UDP多方聊天

2018-08-25  本文已影响0人  FlyingLittlePG

使用UDP协议多个客户端依靠服务器进行聊天

服务器代码:

import socket

def server():
    # 创建套接字,使用IPV4地址,使用UDP协议
    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()
上一篇 下一篇

猜你喜欢

热点阅读