2016-06-07 131 views
3

我目前正在讀一個Python book和整個下面的例子來:的Python - UDP客戶端

import socket 
target_host = "127.0.0.1" 
target_port = 80 

# create a socket object 
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 

# send some data 
client.sendto("AAABBBCCC",(target_host,target_port)) 

# receive some data 
data, addr = client.recvfrom(4096) 

print data 

如果我的理解是正確的,我建立一個監聽UDP的我自己的環回IP地址港口80.我的問題是,它有什麼好處,以及如何「測試」它? (這意味着我怎樣才能讀取發送的「AAABBBCCC」)?

感謝

+1

這只是一個客戶端。您將需要構建一個服務器來收聽併發回它收到的任何內容。然後,您將通過「打印數據」看到「AAABBBCCC」。順便說一下,默認情況下,客戶端被設置爲阻塞模式,因此recvfrom將掛起,直到它從服務器接收到某些東西。 – ToonZ

回答

4

你需要運行一個服務器來聽你的發件人發送到端口上。 有一個很好的解釋here

你一個很好的例子是(根據上面的鏈接):

import socket 

UDP_IP = "127.0.0.1" 
UDP_PORT = 80 

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.bind((UDP_IP, UDP_PORT)) 

while True: 
    data, addr = sock.recvfrom(1024) #buffer of 1024 bytes 
    print "received message: ", data 

您需要先運行服務器,因此它開始收聽,比單獨運行客戶端。