我正在用python运行一个套接字程序,以便与嵌入式设备通信。我能够发送数据包并立即得到响应,我可以通过Wireshark进行验证。问题是我无法在我的代码中捕获它,但我可以在Wireshark中看到响应。下面的代码已组合发送和接收。如果我进行了拆分测试,并且能够在应用程序本身中看到收到确认。我怀疑响应非常快,以至于我的应用程序丢失了它。任何帮助都是值得的
import socket
import select
from binascii import unhexlify
from threading import Thread
import time
def client():
UDP_IP_ADDRESS = "192.168.1.10"
UDP_PORT_NO = 4010
clientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM )
clientSock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
packetToSend=""
messageToSend = raw_input("Message to Send :")
# if messageTOSend too big send as multiple packets
packetsToSend = addpack(messageToSend)
for count, currentPacket in enumerate(packetsToSend):
print "\nData Packet %d:"%count
print currentPacket
packetToSend = "".join(map(chr, currentPacket))
clientSock.sendto(packetToSend, (UDP_IP_ADDRESS, UDP_PORT_NO))
time.sleep(1)
print "packets sent"
def server():
UDP_IP_ADDRESS = ""
UDP_PORT_NO = 4011
print "waiting for data"
serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
serverSock.bind((UDP_IP_ADDRESS, UDP_PORT_NO))
while True:
data, addr = serverSock.recvfrom(1024)
time.sleep(5)
print "Message: ", data
if __name__=='__main__':
a = 0
try:
Thread(target=server).start()
Thread(target=client).start()
except Exception, errtxt:
print errtxt
您的程序运行良好,至少在服务器套接字上是这样。你只是决定不处理你收到的数据
会解决你的问题,你就会收到信息。现在,您只需在while循环中接收,但循环从未中断
相关问题 更多 >
编程相关推荐