简单web服务器的实现
import socket
def service_client(new_socket):
"""为这个客户端返回数据"""
request = new_socket.recv(1024)
print(request)
response = "HTTP/1.1 200 OK\r\n"
response += "\r\n"
response +="hahahaha"
new_socket.send(response.encode("utf-8"))
new_socket.close()
def main():
"""用来完成整体的控制"""
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.bind(("",7890))
tcp_server_socket.listen(128)
while True:
new_socket, client_addr = tcp_server_socket.accept()
service_client(new_socket)
tcp_server_socket.close()
if __name__ == "__main__":
main()
import socket
def service_client(new_socket):
"""为这个客户端返回数据"""
request = new_socket.recv(1024).decode("utf-8")
print(request)
request_lines = request.splitlines()
print("")
print(">"*20)
print(request_lines)
ret = file_name = re.match(r"[^/]+/[^ ]*)",request_lines[0])
if ret:
file_name = ret.group(1)
print("*"*50,file_name)
response = "HTTP/1.1 200 OK\r\n"
response += "\r\n"
f = open("./html"+file_name,"rb")
html_content = f.read()
f.close()
new_socket.send(response.encode("utf-8"))
new_socket.send(html_content)
new_socket.close()
def main():
"""用来完成整体的控制"""
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.bind(("",7890))
tcp_server_socket.listen(128)
while True:
new_socket, client_addr = tcp_server_socket.accept()
service_client(new_socket)
tcp_server_socket.close()
if __name__ == "__main__":
main()