需求
编写一个有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()