소켓 라이브러리를 사용하여 파이썬 웹 서버를 작성하려고합니다. 필자는 여러 출처를 통해 봤지만 필자가 작성한 코드가 작동하지 않는 이유를 알 수 없습니다. 다른 사람들은 매우 유사한 코드를 실행하여 작동한다고 주장합니다. 저는 파이썬에 익숙하지 않아서 간단한 것을 놓치고있을 수도 있습니다.간단한 파이썬 웹 서버 문제
유일한 방법은 데이터 변수를 다시 클라이언트로 보내는 것입니다. 브라우저가 원래 GET 요청을 인쇄합니다. HTTP 응답을 보내려고하면 연결 시간이 초과됩니다.
import socket
##Creates several variables, including the host name, the port to use
##the size of a transmission, and how many requests can be handled at once
host = ''
port = 8080
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(16)
if data:
client.send('HTTP/1.0 200 OK\r\n')
client.send("Content-Type: text/html\r\n\r\n")
client.send('<html><body><h1>Hello World</body></html>')
client.close()
s.close()
실행하려고하면 정확히 어떻게됩니까? [소켓 및/또는 HTTP를 배우기 위해 이것을 수행하는 것과는 별개로, 나쁜 생각입니다] –
쉘을 실행하면 입력 할 때까지 기다립니다. localhost : 8080을 브라우저에 입력하십시오. 내가 할 때, 쉘은 닫힙니다. 잠시 후 브라우저에서 연결 시간이 초과되었다고 말합니다. 앞에서 언급했듯이 클라이언트에 데이터 변수 만 보내는 경우 웹 브라우저는 GET 요청을 표시합니다. – egoskeptical