我尝试使用socket和线程(用于多线程)来制作web服务器。我试图用127.0.0.1:8888连接此服务器,但失败了。
因为我是python的初学者,所以很难发现错误。请帮我纠正这些错误。
这是密码。在
(+我正在使用Python2.7,我得到的错误是127.0.0.1拒绝从浏览器连接,在python上没有错误消息。)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)