import socket, multiprocessing, re
class WSGIServer(object):
def __init__(self):
self.sSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sSocket.bind(("", 80))
self.sSocket.listen(128)
def runServer(self):
while True:
cSocket, _ = self.sSocket.accept()
P = multiprocessing.Process(target=self.handleRequest, args=(cSocket,))
P.start()
def handleRequest(self, cSocket):
recvData = cSocket.recv(1024).decode("utf-8")
data = recvData.splitlines()[0]
ret = re.match("[^/]+(/[^ ]*)", data).group(1)
responseHeader = "HTTP/1.1 200 ok\r\n"
responseHeader += "\r\n"
if ret == "/" or ret == "/index.html":
responseBody = "this is index.html"
elif ret == "/bbbb.html":
responseBody = "this is bbbb.html"
else:
responseBody = "404 not found"
resopnse = responseHeader + responseBody
cSocket.send(resopnse.encode("utf-8"))
cSocket.close()
def main():
http = WSGIServer()
http.runServer()
if __name__ == "__main__":
main()
服务器进程
最新推荐文章于 2024-06-06 12:14:09 发布