python—多任务版udp聊天机器人

发布时间:2019-02-28 18:39:04编辑:auto阅读(2285)

    将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息

     

     1 import socket
     2 import threading
     3 
     4 
     5 def udp_send(udp_socket,ip,port):
     6     while True:
     7         try:
     8             # 获取发送的信息
     9             data = input('请输入要发送的信息:')
    10             udp_socket.sendto(data.encode('gbk'), (ip,port))
    11             
    12         except Exception as erro:
    13             print('错误类型:',erro)
    14             
    15 
    16 def udp_recv(udp_socket):
    17     while True:
    18         # 接收信息
    19         recv_data = udp_socket.recvfrom(1024)
    20         print('接收的信息:',recv_data[0].decode('gbk'))
    21 
    22 
    23 def main():
    24     
    25     # 创建UDP套接字
    26     udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    27                                
    28     # 绑定本地信息
    29     udp_socket.bind(('',8080))
    30 
    31     # 获取对方通信地址
    32     ip = input('请输入对方的ip:')
    33     port = int(input('请输入对方的端口port:'))
    34         
    35     # 创建线程
    36     t1 = threading.Thread(target=udp_send, args=(udp_socket, ip, port))
    37     t2 = threading.Thread(target=udp_recv, args=(udp_socket,))
    38     t1.start()
    39     t2.start()
    40 
    41 
    42 if __name__ == '__main__':
    43     main()

     

关键字