0
ソケットとスレッド(マルチスレッド用)を使用してWebサーバーを作成しようとしました。このサーバーを127.0.0.1:8888に接続しようとしましたが、失敗しました。
私はPythonの初心者なので、エラーをキャッチするのは難しいです。これらのエラーを修正するのを手伝ってください。 ここにコードがあります。Webサーバーとブラウザ(Python)の接続
(+ Iのpython 2.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)
お使いのオペレーティングシステムが表示されているエラーを書き留めて、それがPython 2.xまたは3.xの場合は書き留めてください。 'self.headers ['Conetnt-Length']' – cmertayak
ポート8888でリッスンしているアプリケーションはありますか?どのOSを使用しているのか分かりませんが、Linuxでは 'netstat -tulpan |グレープ8888'。 – mattias
@cmertayak私に誤字を知らせていただきありがとうございます:)私はあなたの質問に答えてこれを編集しました。 – stella