#-*- coding:utf-8 -*-
from socketserver import threadingtcpserver, baserequesthandler
import importlib
import traceback
import time
import logging
logging.basicconfig(level=logging.debug,
filename="log/xxgl_%s.log" % (time.strftime("%y%m%d", time.localtime())),
filemode='a',
format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s: %(message)s')
module_list = {}
class mybaserequesthandler(baserequesthandler):
def handle(self):
#迴圈監聽(讀取)來自客戶端的資料
while true:
try:
#一次讀取1024位元組,並去除兩端的空白字元(包括空格,tab,\r,\n)
data = self.request.recv(1024).strip()
data = data.decode()
if data == '':
break
#self.client_address是客戶端的連線(host, port)的元組
logging.info("receive from %r: [%r]" % (self.client_address, data))
ret = self.exec_sub(data, data)
self.request.sendall(ret.encode())
except:
#traceback.print_exc() #當客戶端主動斷開連線時,self.recv(1024)會丟擲異常
break
def findmodule(self, procname):
try:
return module_list[procname]
except:
logging.debug("module_list[%s] not found" % (procname))
return none
if __name__ == "__main__":
host = "" #主機名,可以是ip,像localhost的主機名,或""
port = 9999 #埠
addr = (host, port)
server = threadingtcpserver(addr, mybaserequesthandler)
server.serve_forever()
python3使用 python3使用模組
python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...
Python3 變數命名空間 import 整理
每個函式 function 有自己的命名空間,稱local namespace,記錄函式的變數。每個模組 module 有自己的命名空間,稱global namespace,記錄模組的變數,包括functions classes 匯入的modules module級別的變數和常量。build in ...
python 元組使用 Python3
python3 元組 python 的元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號 列表使用方括號 元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。例項 python 3.0 tup1 google runoob 1997,2000 tup2 1,2,3,4,5 tup...