发送http请求解析客户端发来的数据03(包括python中socket的解释)

功能:实现使用python充当服务器

然后写好端口,ip地址等,在浏览器上输入http://ip地址:端口号/想要打开的内容+回车,跳转到你想运行的程序或者界面

(可能是一个函数,或者是一个界面或是网页等等)

如下,是一个简单的网页,在浏览器输入http://127.0.0.1:6699/index.html

 python中的代码如下设计(注,我也是在网上看的别人写的,为后面自己写邮件的那个程序做铺垫):

# 编写人:Jaoany
# 开发时间:2021/7/23 15:57
# ! /usr/bin/env python
# -*- coding=utf-8 -*-

import socket # 用套接字编程

serverPort = 6699
bind_ip = "127.0.0.1" # 设置端口号和本地ip
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, serverPort))
server.listen(5)
print('the server is ready to receive')

def get_headers(line_list):
headers = {}
for line in line_list:
new_line = line.decode('utf8')
index = new_line.find(':')
key = new_line[:index]
value = new_line[index + 1:].strip()
headers[key] = value
return headers


# 动态获取请求报文需要的资源
while True:

client, addr = server.accept()
print
"Accepted connection from: %s:%d" % (addr[0], addr[1])
try:
sentence = client.recv(1024)
filename = sentence.split()[1]
# r"index.html", "r" 读取本地文件
f = open('C:/Users/Jaoany/Desktop/工作/发邮件接口' + filename.decode('utf-8'), 'rb')
line_list = sentence.split(b' ')
headers = get_headers(line_list)
for i in line_list:
print(i)
accept = str(headers.get('Accept').split(',')[0].strip())

outputdata = f.read()
header = ' HTTP/1.1 200 OK '
'Connection: close '
'Content-Type: ' + accept + ' '
'Content-Length: %d ' % (len(outputdata)) # 长度设置 important

client.send(header.encode() + outputdata)
client.close()
except IOError:
header = ' HTTP/1.1 404 Not Found'
client.send(header.encode())

本文来自博客园,作者:Jaoany,转载请注明原文链接:https://www.cnblogs.com/fanglijiao/p/15049873.html

原文地址:https://www.cnblogs.com/fanglijiao/p/15049873.html