Je lance un programme socket en python pour communiquer avec un périphérique embarqué. Je suis en mesure d'envoyer le paquet et d'obtenir la réponse immédiatement, que je peux vérifier via Wireshark. Le problème je ne suis pas capable de le capturer dans le mon code, mais je suis capable de voir la réponse dans le Wireshark. Le code ci-dessous a envoyé et reçu combiné. Si je divise le test et que je suis en mesure de voir recevoir l'accusé de réception dans l'application elle-même. Je soupçonne que la réponse est très rapide à tel point que mon application l'a manqué. Toute aide est appréciable.Impossible de recevoir le paquet car il arrive rapidement en python
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
La boucle dans 'server' rejette les messages reçus (c'est-à-dire pas de' print'ing). A part ça, il n'y a rien de mal fonctionnellement. Le problème peut résider avec votre configuration. –
oui, le problème est avec ma configuration. maintenant ça marche bien. Merci. –