美文网首页
Python3 & 基于UDP方式实现简易聊天室功能

Python3 & 基于UDP方式实现简易聊天室功能

作者: 乘风破浪的姐姐 | 来源:发表于2021-01-19 18:37 被阅读0次

    简易聊天室功能使用UDP的方式实现,主要实现3部分功能:
    1.获取键盘数据,并将数据发送给对⽅
    2.接收数据并显示
    3.退出聊天系统

    思路分析
    功能:
    1、发送消息
    2、接收消息
    3、退出系统

    架构:
    发送消息 send_msg()
    接收消息 recv_msg()
    主⼊⼝ main()

    主⼊⼝:
    1、导⼊模块
    2、创建套接字
    3、绑定端⼝

    发送消息:
    1、保存接收⽅信息(⽤户输⼊)
    2、保存接收⽅端⼝号(⽤户输⼊)
    3、保存要发送的内容(⽤户输⼊)
    4、把⽤户输⼊的内容编码并发送

    接收消息:
    1、使⽤socket recvfrom 接收数据
    2、解码数据并且输出

    聊天室代码:

    import socket
    
    def send_message(udp_socket):
       address = input("请输入接收方地址:")
       if len(address)==0:
           address ='172.28.40.185'
           print("默认设置地址为:%s" % address)
    
       port =  input("请输入接收方端口:")
       if len(port)==0:
           port ='7777'
           print("默认设置端口为:%s" % port)
       message = input("请输入要发送的内容:")
       udp_socket.sendto(message.encode("GBK"),(address,int(port)))
    
    def recv_message (udp_socket):
       data,ip_port = udp_socket.recvfrom(1024)
       rece_data = data.decode("GBK")
       print("接收到的数据:%s"%rece_data)
    
    if __name__ == '__main__':
       udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
       udp_socket.bind(("",7777))
       while True:
           # 给出提示,显示聊天器的主要功能
           print("*************************")
           print("**** 1.发送消息 ****")
           print("**** 2.接收消息 ****")
           print("**** 3.退出系统 ****")
           print("*************************")
    
           menu = int(input("请输入要选择的功能序号:"))
    
           if menu == 1:
               send_message(udp_socket)
           elif menu == 2:
               recv_message(udp_socket)
           elif menu == 3:
               print("正在退出...")
               break
               print("OK,退出了")
    
    udp_socket.close()
    

    运行结果:


    image.png

    相关文章

      网友评论

          本文标题:Python3 & 基于UDP方式实现简易聊天室功能

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