Ich arbeite an Socket-Programmierung in Python. Mit ESP Python habe ich einen Socket zum Server erstellt und eine Anfrage gesendet (im API-Paket-Format, je nach Server-Code wird es antworten). Im empfangenden Socket muss ich die Daten überprüfen (wenn Daten empfangen werden, müssen sie mit der nächsten Operation fortfahren. Wenn nicht, muss ich die Anfrage noch einmal senden). Senden ist in Ordnung. Wenn es keine Daten empfängt, geht es beim Empfangen des Sockets nicht zur nächsten Anweisung. Bitte helfen Sie mir.Wie überprüft man den Python-Socket recvfrom() Daten
Code:
try:
s = socket(AF_INET, SOCK_DGRAM)
print "socket created"
except socket.error:
print "failed to create socket"
sys.exit()
Senden von Daten:
s.sendto("packet of data", 0, (HOST,PORT))
In Empfang:
recvpack, payload=s.recvfrom(1024)
if not recvpack:
s.sendto("packet of data", 0, (HOST,PORT))
elif(recvpack[]="packet of data"):
pass # continue to next operations..
In der obigen Empfang Aussage, wenn recvfrom()
in nicht anydata bekommen, wie recvpack
zu überprüfen und zurück zu den nächsten Operationen .. Wenn socket.settimeout()
oder socket.setblocking()
ist die Lösung, wie man diese benutzt.