美文网首页
实现一个多任务udp聊天器

实现一个多任务udp聊天器

作者: furuiyang | 来源:发表于2018-04-27 16:22 被阅读0次
    多任务udp聊天器任务图.png

    需求

    编写一个有2个线程的程序
    线程1用来接收数据然后显示
    线程2用来检测键盘数据然后通过udp发送数据
    总结多任务程序的特点

    import socket
    import threading
    
    def send_msg(udp_socket):
        '''获取键盘数据 并且将其发送给对方 '''
        while True:
            msg = input('\n请输入要发送的数据:')
            dest_ip = input('\n请输入对方的ip地址:')
            dest_port = int(input('\n请输入对方的port:'))
            udp_socket.sendto(msg.encode('utf-8'),(dest_ip,dest_port))
    
    def recv_msg(udp_socket):
        while True:
            recv_msg = udp_socket.recvfrom(1024)
            recv_ip = recv_msg[1]
            recv_msg = recv_msg[0].decode('utf-8')
            print('>>>%s:%s'%(str(recv_ip),recv_msg))
    
    def main():
        udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        udp_socket.bind(('',7788))
        t = threading.Thread(target=recv_msg,args=(udp_socket,))
        t.start()
        # 使用主线程来检测键盘数据并且发送
        send_msg(udp_socket)
    
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

          本文标题:实现一个多任务udp聊天器

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