-1
有些事情让我很困惑。udp监听器从两个不同的源端口接收数据包?
我有功课要做,先生只是想要一个sender_udp.py和listener_udp.py。
但他渴望的东西,我实在无法理解。
他说,
块引用
udp_receiver.py应该监听本地回环(127.0.0.1)端口#5444,并打印出它接收到的端口上的消息。它应该打印出发件人地址和发件人端口号(如果可能的话)。该udp_sender.py应的端口号5566和您的姓氏发送到本地回环(127.0.0.1)您的名字从端口5567
块引用
我写的发送者和接收者,但接收方根本没有收到数据包。
这里是接收器代码:
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)
和发送代码
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()
其实,我知道这个代码,它是不可能将数据包发送到5444,客户端发送数据包不同的港口;在这些港口没有听众。 我无法理解他这个问题是什么意思,也许他要求我们不同的源端口分配给每个数据包?那么,有没有办法与python做到这一点,我找不到任何解决方案?
任何帮助将不胜感激。