2016-06-07 15 views
3

ich gerade liest ein Python book und stieß auf das folgende Beispiel:Python - UDP-Client

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 

Wenn ich es richtig verstanden, ich bin ein Zuhörer auf meine eigene Loopback-IP-Adresse aufbauend auf dem UDP Port 80. Meine Frage ist, wofür ist es gut und wie kann ich es "testen"? (Bedeutung wie kann ich das gesendete "AAABBBCCC" lesen)?

Dank

+1

Dies ist nur ein Client. Sie müssen einen Server aufbauen, um zu hören und alles zurückzusenden, was er empfängt. Dann werden Sie "AAABBBCCC" durch "Druckdaten" sehen. Übrigens wird der Client standardmäßig in den Blockiermodus versetzt, sodass recvfrom so lange hängen bleibt, bis er etwas vom Server empfängt. – ToonZ

Antwort

4

Sie benötigen einen Server laufen auf dem Port Ihren Absender geschickt zu hören. gibt es eine gute Erklärung here.

Ein schönes Beispiel für Dich ist (basierend auf dem obigen Link):

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 

Sie müssen zuerst den Server laufen, so beginnen sie zu hören und als laufen separat Ihre Kunden.