python 简单web服务器,

  python 简单web服务器,

  本文主要为大家介绍Python静态Web服务器多任务版的实现实例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010概述实施步骤1。导入线程模块2。设置端口号复用,程序出口端口立即释放3。当客户机和服务器建立连接时,创建子线程4。设置守护程序5。实现启动程序线程代码。

  

目录

  使用多线程,web服务器可以同时处理多个用户的访问。当客户端和服务器的连接建立成功后,创建一个子线程,用子线程处理客户端的请求,防止主线程阻塞。将创建的子线程设置为守护主线程,防止主线程无法退出。

  

概述

  

实现步骤

  导入线程

  

1.导入threading模块

  TCP _ server _ socket . setsockopt(socket。SOL_SOCKET,SOCKET。SO_REUSEADDR,True)

  

2.设置端口号复用, 程序退出端口立即释放

  设置目标的名称,通过元组传入new_socket参数。

  sub_thread=线程。线程(target=handle_client_request,args=(new_socket,))

  

3.当客户端和服务器建立连接程,创建子线程

  sub_thread.setDaemon(True)

  

4.设置守护主进程

  sub_thread.start()

  

5.启动子线程

  导入插座

  导入线程

  #处理客户的请求

  定义句柄_客户端_请求(新_套接字):

  #此处执行代码,表示连接建立成功。

  recv _ client _ data=new _ socket . recv(4096)

  if len(接收客户数据)==0:

  打印(“关闭的浏览器”)

  new _套接字. close()

  返回

  #解码二进制数据

  recv _ client _ content=recv _ client _ data . decode(“utf-8”)

  打印(接收客户内容)

  #根据指定的字符串进行除法运算,最大除法数为2。

  request _ list=recv _ client _ content . split( ,maxsplit=2)

  #获取请求的资源路径

  请求路径=请求列表[1]

  打印(请求路径)

  #判断请求的根目录是否为根目录,如果满足条件,则指定返回主页数据。

  if request_path==/:

  request_path=/index.html

  尝试:

  #动态打开指定的文件

  用open(static request_path, rb )作为文件:

  #读取文件数据

  file_data=file.read()

  e:除外

  #请求的资源不存在,返回404数据

  #响应行

  response_line=找不到HTTP/1.1 404 \ r \ n

  #响应标题

  response _ header= server : pws 1.0 \ r \ n

  用open(static/error.html , rb )作为文件:

  file_data=file.read()

  #响应者

  response_body=文件数据

  #拼接响应消息

  response _ data=(response _ line response _ header \ r \ n )。编码( utf-8 )响应_正文

  #发送数据

  新套接字发送(响应数据)

  else:

  #响应行

  response _ line= HTTP/1.1 200 OK \ r \ n

  #响应标题

  response _ header= server : pws 1.0 \ r \ n

  #响应者

  response_body=文件数据

  #拼接响应消息

  response _ data=(response _ line response _ header \ r \ n )。编码( utf-8 )响应_正文

  #发送数据

  新套接字发送(响应数据)

  最后:

  #关闭服务和客户端之间的套接字

  new _套接字. close()

  #程序输入功能

  定义主():

  #创建tcp服务器套接字

  TCP _ server _ socket=socket . socket(socket。AF_INET,socket。袜子_流)

  #设置端口号复用,程序出口端口立即释放。

  TCP _ server _ socket . setsockopt(socket。SOL_SOCKET,SOCKET。SO_REUSEADDR,True)

  #绑定端口号

  tcp_server_socket.bind(( ,9000))

  #设置监听

  tcp_server_socket.listen(128)

  而True:

  #等待接受客户端的连接请求。

  new_socket,IP _ port=TCP _ server _ socket . accept()

  打印(ip端口)

  #当客户端和服务器建立连接时,创建一个子线程。

  sub_thread=线程。线程(target=handle_client_request,args=(new_socket,))

  #设置守护程序主线程

  sub_thread.setDaemon(True)

  #启动线程执行相应的任务。

  sub_thread.start()

  if __name__==__main__:

  主()

  以上是Python静态Web服务器多任务版的实现实例的细节。关于Python静态Web服务器多任务的更多信息,请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: