Python利用TCP编程写出一个HTTP服务器程序【源码详解】

准备文件:

    http_server.py : 程序主模块文件

    index.html : 用于响应给浏览器的HTML文件


http_server.py 代码:

from socket import * #引入socket模块


def main(): #定义一个主函数

s = socket() #创建一个 socket对象

s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #设置端口重用

s.bind(('0.0.0.0',8080)) #绑定8080端口

s.listen(3) #设置最大连接数 3

print('等待连接请求...') #打印通知信息

while True: #死循环,无限等待用户连接

c,addr = s.accept() #等待连接

data = c.recv(4089) #接收连接请求

print('已连接至',addr) #打印出连接信息

try: #尝试打开 index.html

f = open('G:/Python/index.html') #打开index.html

except OSError: #如果文件打开失败

resp = 'HTTP/1.1 404 NOT FOUND' #返回码设置为 404

resp += '\r\n' #空行

resp += '没有找到文件' #返回的信息

else:#如果文件打开成功 

resp = 'HTTP/1.1 200 OK' #返回状态码为200

resp += '\r\n' #空行

resp += f.read() #读取文件内容

finally: #最终要执行的语句

c.send(resp.encode()) #将响应信息编码后发送给用户


if __name__ == '__main__': #如果当前是主模块

main() #则调用main()函数

http_server.py 代码

 index.html 代码

    

<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <title>python test document</title>

</head>


<body>

    <h1>python test document</h1>

</body>


</html>


index.html 代码



用电脑浏览器访问结果:

用电脑浏览器访问结果





手机浏览器访问结果:


手机浏览器访问结果

最后编辑于:2019/10/21作者: 牛逼PHP

发表评论