实现一个多任务udp聊天器

实现一个多任务udp聊天器_第1张图片
多任务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聊天器)