tcp-web服务器之返回固定页面

"""返回固定页面"""

# 1.导入模块

import socket

def request_handel(new_client_socket, ip_port):

# 7.接收客户端浏览器的请求协议

    request_data = new_client_socket.recv(1024)

    # print(request_data)

    # 8.判断协议是否为空

    if not request_data:

        print("%s客户端已 断开连接"%str(ip_port))

        new_client_socket.close()

        return

    # 9.拼接响应的报文

    # 9.1 响应行

    response_line ="HTTP/1.1 200 OK\r\n"

    # 9.2 响应头

    response_header ="Server:Python20WS/2.1\r\n"

    # 9.3 响应空行

    response_blank ="\r\n"

    # 9.4 响应主体

    # *************返回固定页面*****************

    with open("index1.html" ,"rb")as f:

        request_body = f.read()

    response_text = (response_line + response_header + response_blank).encode() + request_body

    # 10.发送响应报文

    new_client_socket.send(response_text)

    new_client_socket.close()

def main():

    # 2.创建套接字

    tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    # 3.设置地址可重用

    #                              当前套接字        属性                属性值

    tcp_client_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)

    # 4.绑定端口

    tcp_client_socket.bind(("" , 8080))

    # 5.设置监听,将套接字有主动变为被动

    tcp_client_socket.listen(128)

    # 6.接受客户端连接  创建一个函数

    while True:

        new_client_socket, ip_port = tcp_client_socket.accept()

        print("客户端来了:%s"%str(ip_port))

        request_handel(new_client_socket, ip_port)

    # 11.关闭服务器

    # tcp_client_socket.close()

if __name__ =='__main__':

    main()


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容