Da ist etwas macht mich wirklich verwirrt.UDP-Listener empfängt Pakete von zwei verschiedenen Quellports?
Ich habe eine Hausaufgabe zu tun, Herr will einfach eine sender_udp.py und listener_udp.py.
Aber er begehrt etwas, das ich wirklich nicht verstehen kann.
Er sagt:
Blockquote
udp_receiver.py auf dem lokalen Loopback (127.0.0.1) Port # 5444 und drucken Sie die Nachricht hören sollte, dass es auf dem Port empfängt. Es sollte die Absenderadresse und die Absenderportnummer (wenn möglich) ausgedruckt werden. Die udp_sender.py sollte 5567.
Blockquote
von Hafen zu dem lokalen Loopback (127.0.0.1) Ihren Vornamen aus Portnummer 5566 und Ihren Nachnamen senden schrieb ich den Sender und Empfänger, aber Empfänger empfängt keine Pakete überhaupt.
hier ist der Empfängercode:
import socket
import sys
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Bind the socket to the port
server_address = ('localhost', 5444)
print(sys.stderr, 'starting up on %s port %s' % server_address)
sock.bind(server_address)
while True:
print(sys.stderr, '\nwaiting to receive message')
data, address = sock.recvfrom(4096)
print(sys.stderr, 'received %s bytes from %s' % (len(data), address))
print(sys.stderr, data)
und Sendercode
import socket
import sys
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
messageName = 'aaaaa'
messageSurname = 'bbbb'
try:
# Send data
print(sys.stderr, 'sending "%s"' % messageName)
sent = sock.sendto(messageName.encode('utf-8'),('localhost', 5566))
print(sys.stderr, 'sending "%s"' % messageSurname)
sent = sock.sendto(messageSurname.encode('utf-8'),('localhost', 5567))
finally:
print(sys.stderr, 'closing socket')
sock.close()
Eigentlich habe ich mit diesem Code kennen, ist es nicht möglich ist, Pakete zu 5444 zu senden, sendet Client-Paket an anderer Hafen; und an diesen Ports gibt es keinen Listener. Ich kann nicht verstehen, was er mit diesem Problem meint. Vielleicht hat er uns gebeten, jedem Paket verschiedene Quellports zuzuweisen? Dann, gibt es eine Möglichkeit, es mit Python zu tun, konnte ich keine Lösung finden?
Jede Hilfe wäre sehr willkommen.