0
소켓과 스레딩 (멀티 스레딩 용)을 사용하여 웹 서버를 만들려고했습니다. 이 서버를 127.0.0.1:8888에 연결하려고했지만 실패했습니다.
저는 파이썬의 초보자이므로 오류를 잡기가 어렵습니다. 이 오류를 수정하도록 도와주세요. 다음은 코드입니다.브라우저 (파이썬)에 웹 서버 연결
(+ 내가 파이썬 2.7를 사용하고, 내가 가진 오류가 127.0.0.1 브라우저에서 연결을 거부했다, 파이썬에 오류 메시지가 없었다.) 나는 완전히 왜 이해가 안
import BaseHTTPServer
import socket
import threading
import time
#making method
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def _set_headers(self):
#error handling
if self.protocol_version != 'HTTP/1.1':
self.send_error(400)
return
elif self.path !='/':
self.send_error(404)
return
else:
self.send_respose(200)
self.send_header('Content-type', 'text/html')
self.send_header('Content-length', 1024)
self.end_headers()
def do_GET(self):
self._set_headers()
self.wfile.write('Hello World')
return
def do_PUT(self):
content_length=int(self.headers['Content-Length'])
put_data=self.rfile.read(content_length)
self._set_headers()
self.wfile.write('Hello World')
return
#making one socket
sock=socket.socket (socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('',8888))
sock.listen(5)
#multi threading
class Thread(threading.Thread):
def __init__(self, i):
threading.Thread.__init__(self)
self.i=i
self.start()
def run(self):
server = BaseHTTPServer.HTTPServer(('',8888), Handler)
server.socket=sock
server.server_bind=self.server_close= lambda self: None
server.serve_forever()
if __name__=='__main__':
print('Started WebServer on port 8888')
[Thread(i) for i in range(100)]
time.sleep(100)
오류가 발생하면 운영체제에 기록하고 파이썬 2.x 또는 3.x일까요? 또한 여기에 오타가 있습니다 :'self.headers [ 'Conetnt-Length']' – cmertayak
포트 8888에서 수신 대기하는 응용 프로그램이 있습니까? 어떤 OS를 사용하고 있는지 잘 모르겠지만 리눅스에서는'netstat -tulpan | grep 8888'. – mattias
@cmertayak 오타를 알려 주셔서 감사합니다 :) 나는 당신의 질문에 대답하여 이것을 편집했습니다. – stella