34 lines
1006 B
Python
34 lines
1006 B
Python
# -*- coding: utf-8 -*-
|
|
import socket
|
|
import threading
|
|
|
|
def handle_client(conn, addr):
|
|
try:
|
|
data = conn.recv(8192)
|
|
if data:
|
|
lines = data.split("\r\n")
|
|
if lines:
|
|
method, path, _ = lines[0].split()
|
|
print("[%s:%d] %s %s" % (addr[0], addr[1], method, path))
|
|
|
|
response = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 48\r\n\r\n<html><body>Hello from test server!</body></html>"
|
|
conn.sendall(response)
|
|
finally:
|
|
conn.close()
|
|
|
|
def main():
|
|
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
server.bind(('127.0.0.1', 8888))
|
|
server.listen(5)
|
|
print("Test server running on 127.0.0.1:8888")
|
|
|
|
while True:
|
|
conn, addr = server.accept()
|
|
t = threading.Thread(target=handle_client, args=(conn, addr))
|
|
t.daemon = True
|
|
t.start()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|