यदि आप स्रोत को पढ़ते हैं तो आप देखेंगे कि कमांड लाइन पर केवल पोर्ट को ओवरराइड किया जा सकता है। यदि आप उस होस्ट को बदलना चाहते हैं जिस पर इसे परोसा गया है, तो आपको और खुद की test()
विधि को लागू करने की आवश्यकता होगी । लेकिन यह वास्तव में आसान होना चाहिए।SimpleHTTPServer
BaseHTTPServer
यहाँ है कि आप इसे कैसे कर सकते हैं, बहुत आसानी से:
import sys
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer
def test(HandlerClass=SimpleHTTPRequestHandler,
ServerClass=BaseHTTPServer.HTTPServer):
protocol = "HTTP/1.0"
host = ''
port = 8000
if len(sys.argv) > 1:
arg = sys.argv[1]
if ':' in arg:
host, port = arg.split(':')
port = int(port)
else:
try:
port = int(sys.argv[1])
except:
host = sys.argv[1]
server_address = (host, port)
HandlerClass.protocol_version = protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
if __name__ == "__main__":
test()
और इसका उपयोग करने के लिए:
> python server.py 127.0.0.1
Serving HTTP on 127.0.0.1 port 8000 ...
> python server.py 127.0.0.1:9000
Serving HTTP on 127.0.0.1 port 9000 ...
> python server.py 8080
Serving HTTP on 0.0.0.0 port 8080 ...