返回固定页面的http服务器---面向过程的方式

通过TCP协议,模拟http协议的http服务器。

实现主要流程:

1.建立一个TCP服务器

2.用浏览器(即http客户端)来访问这个TCP服务器

3.返回数据给浏览器(这里返回的数据也是符合http协议的)

关于http和tcp协议的关系,可参考该链接https://www.cnblogs.com/caolei1108/p/8759408.html

话不多说:代码附上:

# -*- coding: UTF-8 -*-
# TCP模拟http协议的web服务器
# 浏览器打开 localhost:9999
import socket


def client_service(new_socket):
    """客户端服务程序"""
    #1.接收数据
    request = new_socket.recv(1024)
    print(request)
    
    #2.按照http协议的格式封装好回应包
    # 2.1添加header
    response = "HTTP/1.1 200 OK\r\n"
    response += "\r\n"
    # 2.2.添加body
    response += "welcome to my website"
    #3.返回数据(注意发送的数据需要编码为 utf-8 格式)
    new_socket.send(response.encode("utf-8"))
    #4.关闭连接套接字
    new_socket.close()
    
    
def main():
    #1 创建套接字
    tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    #2.绑定端口
    tcp_server.bind(("",9999))
    #3.监听端口
    tcp_server.listen(128)#最多同时监听128个端口
    while True:
        #4.等待新的客户端链接
        new_socket,client_addr = tcp_server.accept()
        #5.为这个客户端进行服务
        client_service(new_socket)

    #6.关闭服务器
    tcp_server.close()

if __name__ == "__main__":
    main()

运行效果:

运行效果

发布了7 篇原创文章 · 获赞 3 · 访问量 3783

猜你喜欢

转载自blog.csdn.net/u011522841/article/details/105277700