Udp接收和傳送的多執行緒進行(新手)

死鹹魚發表於2018-08-16

以多執行緒來接收和傳送資料(udp)

思路:建立三個函式,一個是傳送函式,另一個是接收函式,還有一個主函式,呼叫前面兩個函式,實現功能。在mNetAssist軟體下除錯。
結果:與非多執行緒似乎沒有什麼區別,看了一下思路,沒什麼錯誤,等明天再繼續看看程式。程式在下面:

import socket
import threading
def send_udp(udp_socket):#
    num=input('請輸入傳送的資料:')

    num_ip=input('請輸入接收端的ip地址')

    num_port=int(input('請輸入接收端的埠:'))

    udp_socket.sendto(num.encode('utf-8'),(num_ip,num_port))

def recve_udp(udp_socket):
    recv_msg = udp_socket.recvfrom(1024)

    num1_ip_port=recv_msg[1]
    num2_data=recv_msg[0].decode('utf-8')

    print('接收到的資料為;%s 傳送的來源為%s'%(num2_data,num1_ip_port))
def main():
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    udp_socket.bind(('', 7890))
    num1=threading.Thread(target=send_udp,args=(udp_socket,))
    num2=threading.Thread(target=recve_udp,args=(udp_socket,))

    num1.start()
    num2.start()
if __name __ == '__main__':
    main()

相關文章