Python面向对象之Web静态服务器

  

本文实例为大家分享了Python Web静态服务器的具体代码,供大家参考,具体内容如下

  

功能:用户访问服务器可以返回指定页面
  

  

步骤:
  

  

1。创建服务器类
  2.创建初始化服务器配置方法
  3.创建接收客户端请求的方法
  4 .创建发送响应报文给客户端方法

        进口套接字   进口再保险   进口多处理         # Http服务器类   类HttpServer:   #初始化属性   def __init__(自我):   #创建套接字   自我。tcp_server_socket=socket.socket(插座。AF_INET socket.SOCK_STREAM)   #设置地址重用   self.tcp_server_socket.setsockopt(套接字。SOL_SOCKET,插座。SO_REUSEADDR,真的)   #绑定端口   self.tcp_server_socket。绑定((" ",8080))   #设置监听,最多建立128个连接   self.tcp_server_socket.listen (128)      def开始(自我):   而真正的:   #接收客户端信息   client_socket ip_port=self.tcp_server_socket.accept ()   打印(“新用户:“,ip_port,“已连接的)   #创建新进程,给客户端返回响应报文   t1=multiprocessing.Process(目标=自我。recv_msg args=(client_socket ip_port))   #启动进程   t1.start ()   #关闭客户端套接字(多进程不共享资源,故先后需要关闭两次套接字)   client_socket.close ()      #发送消息方法   @staticmethod   def recv_msg (client_socket ip_port):   #接收客户端请求报文   client_text=client_socket.recv (1024)   如果不是client_text:   打印(“客户端”,ip_port”已下线”)   client_socket.close ()   返回   #请求报文解码   client_text_str=client_text.decode ()   打印(client_text_str)   #将请求报文切割   client_list=client_text_str.split (“\ r \ n”)   #正则匹配出请求路径   ret=re.search (r“\(. *) \年代”,client_list [0])   print (ret.group ())   #匹配不到则请求报文错误   如果不是遗憾:   打印(“用户请求报文格式错误!”)   client_socket.close ()   返回   #得到路径   path_info=ret.group (1)   #设置默认路径   如果path_info==??   path_info='/index . html '   打印(“接收到用户请求:“,path_info)   #响应头   response_header="服务器:Python-Web1.0 \ r \ n”   #响应空行   response_blank=" \ r \ n "   试一试:   #读取指定路径文件,并且返回   张开('网络' + path_info, rb)文件:   #读取文件的二进制数据   response_content=以()   404 #找不到路径则返回错误   除了例外e:   #开始拼接响应数据   response_line=癏TTP/1.1 404 Not Found \ r \ n”   response_content="错误! ! !% s % str (e)   response_content=response_content.encode ()   其他:   #开始拼接响应数据   response_line=癏TTP/1.1 200 OK \ r \ n”   #拼接响应头   response_data=https://www.yisu.com/zixun/(response_line + response_header + response_blank) .encode () + response_content   #发送数据   client_socket.send (response_data)   #关闭套接字   client_socket.close ()         if __name__==癬_main__”:   http1=HttpServer ()   http1.start ()      

直接结果:可以正确的返回客户端请求的页面
  

  

 Python面向对象之Web静态服务器

  

 Python面向对象之Web静态服务器

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python面向对象之Web静态服务器