FIle Not Found
# 具体遇到的问题
FIle Not Found
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
程序找不到我的index.html,项目路径如下:
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
import socket
import multiprocessing
HTML_DIR = "./html"
def handle_client(client):
#不断地接受客户端的数据
client_request_data = client.recv(1024)
print("当前客户端的请求数据为:%s"%client_request_data)
#想客户端相应数据,是根据HTTP协议的规范的
#状态行,包含HTTP协议版本,状态码和状态描述,以空格分隔
response_start_line = "HTTP/1.1 200 OK\r\n"
#定义了一个响应头
response_headers = "Server:My server\r\n"
#响应正文
# response_body = "Hello World"
#GET / HTTP/1.1\r\n
#通过空格分隔客户端请求数据
request_data = client_request_data.decode().split(" ")
#拿到客户端要请求的文件
if request_data[1] == "/":
#index.html前面一定要加上/
filename = "/index.html"
else:
filename = request_data[1]
#filename---index.html
#有可能客户端请求的是图片文件,视频文件
try:
#文件可以找到
with open(HTML_DIR+filename, 'rb') as f:
response_body = f.read()
except:
#文件找不到
response_start_line = "HTTP/1.1 404 Not Found\r\n"
response_body = "FIle Not Found".encode("utf-8")
#相应数据:响应正文,响应头之间有一个空行
response = response_start_line+response_headers+"\r\n"+response_body.decode()
print("服务器相应的数据为:%s"%(response))
#一定要回复二进制数据
client.send(response.encode("utf-8"))
client.close()
if __name__ == '__main__':
#创建一个TCP类型的HTTP服务器
server = socket.socket(type=socket.SOCK_STREAM)
#地址的绑定,传入一个元组,如果地址里面什么都不写,代表的是我当前机器的所有IP地址
#IP地址的端口号是8080
server.bind(("",8080))
#服务端监听,监听个数128
server.listen(128)
print("WEB服务器已经启动...")
#使用while循环不停接受客户端的请求
while True:
#接受客户端的请求,并且返回两个信息,分别为客户端的socket和客户端的地址信息
client,address = server.accept()
print("%s,%s连接上了WEB服务器"%(address[0],address[1]))
#引入多进程,处理多个客户端的请求
client_process = multiprocessing.Process(target=handle_client,args=(client,))
#开启进程
client_process.start()在这里输入代码,可通过选择【代码语言】突出显示
11
收起
正在回答 回答被采纳积分+1
1回答
4.入门主流框架Scrapy与爬虫项目实战
- 参与学习 人
- 提交作业 107 份
- 解答问题 1672 个
Python最广为人知的应用就是爬虫了,有趣且酷的爬虫技能并没有那么遥远,本阶段带你学会利用主流Scrapy框架完成爬取招聘网站和二手车网站的项目实战。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星