美文网首页
UDP多方聊天

UDP多方聊天

作者: FlyingLittlePG | 来源:发表于2018-08-25 11:49 被阅读0次

使用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()
  • 缺点: 此程序只能在客户端输入消息后才能接收服务器端返回的消息

相关文章

网友评论

      本文标题:UDP多方聊天

      本文链接:https://www.haomeiwen.com/subject/zyawiftx.html