私はPythonでソケットプログラミングに取り組んでいます。 ESPのPythonを使用して私はサーバーへのソケットを作成し、応答するサーバーコードに応じてAPIパケット形式で要求を送信しています。受信ソケットでは、データをチェックする必要があります(データが受信された場合、次の操作に進む必要があります。そうでなければ、もう一度リクエストを送信する必要があります)。 送信は大丈夫です。受信側のソケットで、データを受信していない場合は、次の命令に行くことはありません。私を助けてください。pythonソケットrecvfrom()データをチェックする方法
コード:受信中
s.sendto("packet of data", 0, (HOST,PORT))
:データ送信
try:
s = socket(AF_INET, SOCK_DGRAM)
print "socket created"
except socket.error:
print "failed to create socket"
sys.exit()
上記受信声明で
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..
を、recvpack
の確認方法、ANYDATAを得ていないでrecvfrom()
場合次の操作に戻ります。socket.settimeout()
またはsocket.setblocking()
が解決策です。これらを使用する方法。