IDE:Pycharm
sever.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/bin/python #-*- coding: UTF-8 -*- #文件名:server.py #create by wzh 2017/10/26 import socket #导入socket模块 import re from multiprocessing import Process #导入进程模块 #设置静态文件根目录 HTML_ROOT_DIR = './html' def handle_client(client_socket): """处理客户端连接请求""" request_data = client_socket.recv( 1024 ) print (request_data) request_lines = request_data.splitlines() for line in request_lines: print (line) #'GET / HTTP/1.1' request_start_line = request_lines[ 0 ].decode( "utf-8" ) print ( "*" * 10 ) print (request_start_line) #提取用户请求的文件名 file_name = re.match(r "\w+ +(/[^ ]*) " , str (request_start_line)).group( 1 ) if "/" = = file_name: file_name = '/index.html' #打开文件,读取内容 try : file = open (HTML_ROOT_DIR + file_name, "rb" ) except IOError: response_start_line = "HTTP/1.1 404 Not Found\r\n" response_heads = "Server: My server\r\n" response_body = "The file not found!" else : file_data = file .read() file .close() response_start_line = "HTTP/1.1 200 ok\r\n" response_heads = "Server: My server\r\n" response_body = file_data.decode( "utf-8" ) response = response_start_line + response_heads + "\r\n" + response_body print ( "response data:" ,response) client_socket.send(bytes(response, "utf-8" )) client_socket.close() if __name__ = = "__main__" : #如果直接运行本文件,那么__name__为__main__(此时才运行下面的程序),否则为对应包名 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建socket对象 s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1 ) #host = socket.gethostname() # 获取本地主机名 port = 1212 # #print(host) s.bind(("", port)) # 绑定端口 s.listen( 5 ) while True : c,addr = s.accept() #建立客户端连接 print ( '连接地址' ,addr) handle_client_process = Process(target = handle_client,args = (c,)) #ALT+ENTER快捷键生成函数 handle_client_process.start() c.close() |
index.html
1
2
3
4
5
6
7
8
9
10
11
|
<!DOCTYPE html> <html lang = "en" > <head> <meta charset = "UTF-8" > <title>My Web< / title> < / head> <h1 align = "center" >welcome!< / h1> <p align = "center" >这是一个神奇的网站!< / p> <body> < / body> < / html> |
运行server.py
在浏览器中输入localhost:1212
以上这篇python 编写简单网页服务器的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/wzhwhust/article/details/78576663