내 서버 소켓에 문제가 있습니다. 웹 서버를 만들고 브라우저에서 채우기 위해 노력하고 있습니다. 양식 HTML 스크립트와 같은 표시됩니다 : 내가 POST 요청이 타격 후 브라우저에서 보낸 내 터미널에서 전체 요청을 인쇄하려고POST http 요청을받은 후 '자원 일시적으로 사용할 수 없음'- Python
<html>
<body bgcolor = black text= white>
<FORM method="post" action="/processData.py">
<P>
<LABEL for="firstname">First name: </LABEL>
<INPUT type="text" id="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
<INPUT type="text" id="lastname"><BR>
<LABEL for="email">email: </LABEL>
<INPUT type="text" id="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
</body>
</html>
'제출'. 내 웹 서버에서 POST 요청을 받으면 소켓에서 '[Errno 35] Resource Unavailable Unreserved'을 throw합니다. 나는 연결을 닫지 않거나 아무것도 아니지만 어떻게 든 연결이 느슨해집니다. 파이썬에서 POST를 사용하기 위해 사용하는 코드는 다음과 같습니다.
while not recvIsComplete:
rcvdStr = fd.recv(1024)
if rcvdStr[0:3] == "GET":
toGET()
elif rcvdStr[0:4] == "POST":
print rcvdStr
어떤 아이디어가 진행되고 있습니까?
"웹 서버를 만드는 방법"에 대해 더 자세히 알아야합니다. 그러나 일반적으로 비 블로킹 소켓에서 읽으려고 할 때 errno 35 ('EAGAIN')을 얻을 수는 있지만 읽을 데이터는 없습니다. (대부분의 POSIX 플랫폼에서'EWOULDBLOCK : Operation would block '은'EAGAIN : Resource temporarily available'과 같은 에러입니다.) – abarnert
또한'rcvdStr'라인에서 에러가 발생하고 있습니다. = fd.recv (1024)', 그리고 추적 표시가 말하는 것은 ... 그러나 우리가 우리가 짐작할 필요가 없도록 보여 주면 좋을 것입니다. – abarnert
또한 플랫폼에 따라 EAGAIN과 EWOULDBLOCK이 있는지 확인할 수 있습니다. (Windows 사용자 인 경우 대답하지 않으려면 "Windows에 있습니다.") – abarnert