나는 파이썬에서 소켓 프로그래밍을하고있다. ESP 파이썬을 사용하여 서버에 소켓을 생성하고 요청을 보냅니다 (서버 패킷에 따라 API 패킷 형식으로 응답합니다). 소켓을 수신 할 때 데이터를 확인해야합니다 (데이터가 수신되면 다음 작업을 계속해야합니다. 그렇지 않으면 요청을 다시 보내야합니다). 보낼 수 있습니다. 소켓을 수신 할 때 데이터를받지 못하면 다음 명령으로 이동하지 않습니다. 제발 도와주세요.python 소켓 recvfrom() 데이터를 확인하는 방법
코드 :
try:
s = socket(AF_INET, SOCK_DGRAM)
print "socket created"
except socket.error:
print "failed to create socket"
sys.exit()
하는 전송 데이터 :
가 수신에서s.sendto("packet of data", 0, (HOST,PORT))
: 위의 수신 문에서
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..
, recvfrom()
경우 애니을받지에서, 어떻게 recvpack
을 확인 다음 작업으로 돌아갑니다. socket.settimeout()
또는 socket.setblocking()
이 해결책입니다. 사용 방법은 다음과 같습니다.