使用BaseHTTPServer为公共网络构建服务器?

时间:2014-12-30 15:29:33

标签: python windows python-2.7 basehttpserver

尝试构建一个简单的服务器:

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

class MyHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        try:
            self.send_response(200)
            self.send_header('Content-type',    'text/html')
            self.end_headers()

            self.wfile.write("It works!")

            return

        except IOError:
            self.send_error(404,'File Not Found: %s' % self.path)

try:
    server = HTTPServer(('localhost', 8080), MyHandler)
    print 'started httpserver...'
    server.serve_forever()
except KeyboardInterrupt:
    print '^C received, shutting down server'
    server.socket.close()

嗯,它适用于127.0.0.1:8080,但现在我想通过公共网络my ip:8080访问它,我该怎么办?

修改HTTPServer(('0.0.0.0', 8080), MyHandler)对我不起作用,知道为什么?

我在win 7终极64位,python 2.7.3

1 个答案:

答案 0 :(得分:1)

指定'0.0.0.0'''(空字符串)以使服务器从任何地方接受连接。

server = HTTPServer(('0.0.0.0', 8080), MyHandler)

地址('0.0.0.0', 8080)传递给socket.bind0.0.0.0用于绑定到任何本地网络接口。