我有一个程序可以通过 UDP 接受坐标,移动一些设备,然后在工作完成后回复。
我的代码在这里:
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,没有数据包发送出站。不会抛出任何错误。
任何想法为什么会发生这种情况?
繁花不似锦
相关分类