亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

Python Web靜態服務器非堵塞模式實現方法示例

2024-09-09 19:03:05
字體:
來源:轉載
供稿:網友

本文實例講述了Python Web靜態服務器非堵塞模式實現方法。分享給大家供大家參考,具體如下:

單進程非堵塞 模型

#coding=utf-8from socket import *import time# 用來存儲所有的新鏈接的socketg_socket_list = list()def main():  server_socket = socket(AF_INET, SOCK_STREAM)  server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR , 1)  server_socket.bind(('', 7890))  server_socket.listen(128)  # 將套接字設置為非堵塞  # 設置為非堵塞后,如果accept時,恰巧沒有客戶端connect,那么accept會  # 產生一個異常,所以需要try來進行處理  server_socket.setblocking(False)  while True:    # 用來測試    time.sleep(0.5)    try:      newClientInfo = server_socket.accept()    except Exception as result:      pass    else:      print("一個新的客戶端到來:%s" % str(newClientInfo))      newClientInfo[0].setblocking(False) # 設置為非堵塞      g_socket_list.append(newClientInfo)    for client_socket, client_addr in g_socket_list:      try:        recvData = client_socket.recv(1024)        if recvData:          print('recv[%s]:%s' % (str(client_addr), recvData))        else:          print('[%s]客戶端已經關閉' % str(client_addr))          client_socket.close()          g_socket_list.remove((client_socket,client_addr))      except Exception as result:        pass    print(g_socket_list) # for testif __name__ == '__main__':  main()

web靜態服務器-單進程非堵塞

import timeimport socketimport sysimport reclass WSGIServer(object):  """定義一個WSGI服務器的類"""  def __init__(self, port, documents_root):    # 1. 創建套接字    self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    # 2. 綁定本地信息    self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)    self.server_socket.bind(("", port))    # 3. 變為監聽套接字    self.server_socket.listen(128)    self.server_socket.setblocking(False)    self.client_socket_list = list()    self.documents_root = documents_root  def run_forever(self):    """運行服務器"""    # 等待對方鏈接    while True:      # time.sleep(0.5) # for test      try:        new_socket, new_addr = self.server_socket.accept()      except Exception as ret:        print("-----1----", ret) # for test      else:        new_socket.setblocking(False)        self.client_socket_list.append(new_socket)      for client_socket in self.client_socket_list:        try:          request = client_socket.recv(1024).decode('utf-8')        except Exception as ret:          print("------2----", ret) # for test        else:          if request:            self.deal_with_request(request, client_socket)          else:            client_socket.close()            self.client_socket_list.remove(client_socket)      print(self.client_socket_list)  def deal_with_request(self, request, client_socket):    """為這個瀏覽器服務器"""    if not request:      return    request_lines = request.splitlines()    for i, line in enumerate(request_lines):      print(i, line)    # 提取請求的文件(index.html)    # GET /a/b/c/d/e/index.html HTTP/1.1    ret = re.match(r"([^/]*)([^ ]+)", request_lines[0])    if ret:      print("正則提取數據:", ret.group(1))      print("正則提取數據:", ret.group(2))      file_name = ret.group(2)      if file_name == "/":        file_name = "/index.html"    # 讀取文件數據    try:      f = open(self.documents_root+file_name, "rb")    except:      response_body = "file not found, 請輸入正確的url"      response_header = "HTTP/1.1 404 not found/r/n"      response_header += "Content-Type: text/html; charset=utf-8/r/n"      response_header += "Content-Length: %d/r/n" % (len(response_body))      response_header += "/r/n"      # 將header返回給瀏覽器      client_socket.send(response_header.encode('utf-8'))      # 將body返回給瀏覽器      client_socket.send(response_body.encode("utf-8"))    else:      content = f.read()      f.close()      response_body = content      response_header = "HTTP/1.1 200 OK/r/n"      response_header += "Content-Length: %d/r/n" % (len(response_body))      response_header += "/r/n"      # 將header返回給瀏覽器      client_socket.send( response_header.encode('utf-8') + response_body)# 設置服務器服務靜態資源時的路徑DOCUMENTS_ROOT = "./html"def main():  """控制web服務器整體"""  # python3 xxxx.py 7890  if len(sys.argv) == 2:    port = sys.argv[1]    if port.isdigit():      port = int(port)  else:    print("運行方式如: python3 xxx.py 7890")    return  print("http服務器使用的port:%s" % port)  http_server = WSGIServer(port, DOCUMENTS_ROOT)  http_server.run_forever()if __name__ == "__main__":  main()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日韩一区| 这里只有视频精品| 久久天堂电影网| 日韩高清中文字幕| 精品久久久免费| 91高清免费在线观看| 91免费精品视频| 国产精品自拍网| 亚洲精品视频在线播放| 久久人91精品久久久久久不卡| 亚洲精品www久久久| 中文字幕日韩在线视频| 全亚洲最色的网站在线观看| 日韩精品视频在线播放| 久久天堂av综合合色| 亚洲片国产一区一级在线观看| 亚洲图中文字幕| 久久不射热爱视频精品| 性欧美暴力猛交69hd| yellow中文字幕久久| 欧美激情国产高清| 热久久美女精品天天吊色| 久久国产精品久久久久| 97超碰蝌蚪网人人做人人爽| 91免费在线视频| 中文字幕亚洲无线码在线一区| 疯狂蹂躏欧美一区二区精品| 奇米一区二区三区四区久久| yellow中文字幕久久| 欧美一级淫片丝袜脚交| 日韩中文字幕国产精品| xvideos国产精品| 国产精品夫妻激情| 亚洲第一天堂无码专区| 亚洲欧美综合区自拍另类| 日韩精品免费综合视频在线播放| 国产精品丝袜久久久久久不卡| 久99久在线视频| 青草青草久热精品视频在线观看| 欧美日韩国产综合新一区| 国产精品丝袜久久久久久不卡| 亚洲欧美激情一区| 国产精品国产三级国产aⅴ9色| www.美女亚洲精品| 久久躁日日躁aaaaxxxx| 亚洲国产日韩欧美在线动漫| 不卡av电影在线观看| 亚洲黄在线观看| xxx成人少妇69| 亚洲激情视频在线| 国产精品福利网| 亚洲精品女av网站| 日韩av手机在线观看| 粉嫩av一区二区三区免费野| 国产成人精品av| 国产在线拍偷自揄拍精品| 久久久免费高清电视剧观看| 色综合伊人色综合网站| 91极品女神在线| 欧美一级淫片丝袜脚交| 成人乱色短篇合集| 欧美一区二区三区四区在线| 色综合视频一区中文字幕| 国产精品视频免费观看www| 2019日本中文字幕| 亚洲激情久久久| 国产精品日韩电影| 午夜欧美大片免费观看| 97av在线视频免费播放| 国产精品视频yy9099| 国产亚洲一区精品| 高潮白浆女日韩av免费看| 欧美午夜视频在线观看| 国产91在线播放九色快色| 97国产精品久久| 久久久国产精品亚洲一区| 清纯唯美亚洲综合| 亚洲色图第三页| 日本三级韩国三级久久| 精品久久久久久中文字幕| 久久久久久久久亚洲| 欧美三级免费观看| 国产一区二区三区日韩欧美| 日韩美女在线播放| 中文字幕亚洲天堂| 91久久久久久久久久久久久| 性色av一区二区三区免费| 日韩av在线资源| 亚洲老头老太hd| 亚洲最新av在线网站| 欧美日韩一区二区三区在线免费观看| 国产美女搞久久| 欧美激情亚洲一区| 色婷婷av一区二区三区在线观看| 国产91精品在线播放| 亚洲变态欧美另类捆绑| 国产午夜精品全部视频在线播放| 欧美国产亚洲精品久久久8v| 中文字幕一区电影| 欧美男插女视频| 国产精品劲爆视频| 98精品国产高清在线xxxx天堂| 亚洲国产精品久久精品怡红院| 日韩中文字幕在线看| 国产精品黄色影片导航在线观看| 久久久中文字幕| 欧美一级大胆视频| 久久久久久噜噜噜久久久精品| 国产精品视频在线观看| 91精品国产色综合久久不卡98口| 欧美性色xo影院| 成人激情视频在线观看| 亚洲精品网站在线播放gif| 日韩精品中文字幕视频在线| 欧美性高潮床叫视频| 久久久久久久久电影| 国产精品欧美一区二区三区奶水| 精品一区二区三区电影| 欧美大尺度在线观看| 日韩av网站导航| 精品国产美女在线| 一级做a爰片久久毛片美女图片| 亚洲一区二区久久久久久| 国产欧美在线观看| 亚洲精品美女视频| 国产午夜精品久久久| 亚洲最大av网| 91精品国产综合久久香蕉922| 97久久超碰福利国产精品…| 成人国产精品久久久久久亚洲| 九九精品视频在线观看| 欧美日韩一区二区精品| www.日韩不卡电影av| 一区二区三区日韩在线| 国产精品成人av在线| 亚洲精品720p| 日韩高清免费在线| 亚洲精品成a人在线观看| 欧美激情免费在线| 亚洲香蕉在线观看| 中文字幕日韩在线观看| 欧美成年人在线观看| 久久综合伊人77777尤物| 国产精品亚洲片夜色在线| 欧美性xxxx极品hd满灌| 欧美日韩国产影院| 亚洲一区二区中文字幕| 色偷偷888欧美精品久久久| 国产精品∨欧美精品v日韩精品| 国产在线高清精品| 伊人久久五月天| 日本视频久久久| 日韩免费av一区二区| 亚洲女人被黑人巨大进入al| 黑人狂躁日本妞一区二区三区| 欧美激情免费观看| 亚洲aⅴ男人的天堂在线观看| 精品国产福利视频| 自拍偷拍亚洲在线| 久久国产加勒比精品无码| 日韩二区三区在线| 亚洲精品www久久久久久广东| 姬川优奈aav一区二区| 在线视频欧美日韩精品|