知识如下:
#导入socket 模块
from socket import
#host是本机地址,serverPort是端口号,程序运行后,在浏览器中输入 127.0.0.1:8888/index.html 即可访问主页
host = ‘127.0.0.1’ 或者输入本机ip
port = 8888
#创建了服务器的套接字,其中AF_INET表示使用的是IPV4协议,SOCKER_STREAM表示使用的是TCP套接字
SocK_1 = socket(AF_INET , SOCK_STREAM)
#表示将服务端端口与套接字连接起来
SocK_1.bind((host , port))
#让服务器聆听TCP连接,参数为请求连接的最大数目
Sock_1.listen(128)
#打开index.html 网页文件 然后以2进制可读的方式
with open(‘index.html’ , ‘rb’) as f:
data=f.read()
#可以读取data 以send 的方式传到网页上 不过在传输数据时时 前面要加上响应首行和响应首部 然后在响应体
new_sock.send(‘HTTP/1.1 200 OK\r\n’.encode())
new_sock.send(‘Content-Type:text/html;charset=utf-8\r\n’.encode())
new_sock.send(’\r\n’.encode())
new_sock.send(data)
#HTTP/1.1 200 ok服务器响应文件的报文头,第一位是HTTP协议,然后是状态 200 ok
#如果没有请求到文件,则替换 200 ok 为 404 Not Found。
#Content-Type 指的是文件类型,你要回传html类型的文件。就是text/html,
Content-Type: text/html,如果是png图片,则是image/png 具体根据文件格式去查找相应名称
#一定一定要注意格式,不能有变化,否则浏览器不能正确理解文件类
#一直循环等待请求连接
while TRUE :
#当有客户机响应时,则建立TCP连接
newsocket,addr = sock_1.accept()
sentence收到的是客户发送请求的报文,里面有请求方法,请求文件等
sentence = newsocket.recv(1024)
#接受到的为2进制 需要解码为utf-8 加上 .decode()默认解码为utf-8