zoukankan      html  css  js  c++  java
  • 返回固定页面的web服务器

    import socket
    
    
    def handle_client(socket_con):
        """
           接收来自客户端的请求,并接收请求报文,解析,返回
        """
        # 服务器接收客户端的请求报文
        request = socket_con.recv(4096).decode()
        print(request)
        # 服务器拼接响应报文并回复
        response_line = 'HTTP/1.1 200 OK
    '
        response_head = 'Server:skylark 2.0
    '
        response_head += 'Content-Type:text/html;charset=utf-8
    '
        # response_body = '这是显示的内容!
    '
        # 在响应体这里略作改动
        # 确认页面文件的绝对路径(根据实际情况填写,因为写成了r打开文件,不能是图片格式的,尽量是html格式的)
        path = '# 确认页面文件的绝对路径'
        with open(path, 'r') as f:
            response_body = f.read()
        # 重新拼接响应体
        response = response_line + response_head + '
    ' + response_body
        socket_con.send(response.encode())
        socket_con.close()
    
    
    def main():
        # 服务器创建负责监听的socket
        socket_listen = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 设置端口重用
        socket_listen.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
        # 绑定监听端口
        socket_listen.bind(('', 8888))
        # 设置监听队列
        socket_listen.listen(128)
        # 通过循环不同的接受请求
        while True:
            # accept() 返回元组 (socket object, address info)
            socket_con, socket_con_adds = socket_listen.accept()
            # 打印提示信息
            print('客户端:',socket_con_adds,'连接成功!')
            # 使用函数处理客户端发送的信息
            handle_client(socket_con)
    
    
    if __name__ == '__main__':
         main()
    

      

  • 相关阅读:
    临床是什么意思
    .NET编程 TripleDES加解密范例
    七个C#编程的小技巧
    什么是医技科室
    NT Service与桌面交互
    如何在全局程序集缓存 (GAC) 中安装 DLL 文件
    C# 获取机器码
    .NET编程 字节数组、数值和十六进制字符串的转换
    C#.Net的全局键盘钩子(Hook)技术
    VS2008安装"deffactory.dat"文件错误解决方法
  • 原文地址:https://www.cnblogs.com/wf-skylark/p/9027115.html
Copyright © 2011-2022 走看看