【发布时间】:2018-10-25 00:43:30
【问题描述】:
我有一个程序通过 UDP 接受坐标,移动一些设备,然后在工作完成后回复。
我好像和这个人有同样的问题:
Python sendto doesn't seem to send
我的代码在这里:
import socket
import struct
import traceback
def main():
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind(('',15000))
reply_sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
try:
data,addr = sock.recvfrom(1024)
if data is not None:
try:
coords = struct.unpack('>dd',data)
#Stuff happens here
print(f'moved probe to {coords}')
reply_sock.sendto(bytearray.fromhex('B'),('10.0.0.32',15001))
except:
traceback.print_exc()
try:
reply_sock.sendto(bytearray.fromhex('D'),('10.0.0.32',15001))
except:
traceback.print_exc()
break
except:
pass
程序的行为就像 sendto 调用刚刚被传递一样;它接受数据包,执行打印语句,然后循环回来(它可以多次执行循环但从不回复)。我正在查看wireshark,并且没有数据包被发送出站。不会抛出任何错误。
任何想法为什么会发生这种情况?
【问题讨论】:
-
您没有为外部尝试打印任何回溯,因此您可能隐藏了问题