Python常駐任務(wù)實(shí)現(xiàn)接收外界參數(shù)代碼解析
實(shí)現(xiàn)一個(gè)簡單的常駐任務(wù)是容易的,寫一個(gè)while True就可以了,但是同時(shí)要能接收外界傳來的參數(shù),就稍微有點(diǎn)復(fù)雜.
我第一個(gè)想到的是網(wǎng)絡(luò)編程中的server/client模式
server作為常駐進(jìn)程,可以接受client傳來的各種參數(shù)進(jìn)行處理
服務(wù)端:server.py
import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1', 10001)) s.listen(5) def do_some(): pass def do_other(): pass def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr) sock.send(b'Welcome!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break data_str = data.decode('utf-8') data_list = data_str.split(',') if len(data_list) == 3: do_some() else: do_other() sock.send(('processing, %s!' % s3).encode('utf-8')) sock.close() if __name__ == '__main__': while True: # 接受一個(gè)新連接: data, addr = s.accept() # 創(chuàng)建新線程來處理TCP連接: t = threading.Thread(target=tcplink, args=(data, addr)) t.start()
服務(wù)端實(shí)現(xiàn)完了,下面我們來實(shí)現(xiàn)客戶端client.py,客戶端支持傳入?yún)?shù)或從文件讀取參數(shù),來向客戶端發(fā)送請求
import socket import sys if __name__ == '__main__': param = sys.argv[1] c_list = [] if param.endswith('txt'): with open(param, 'r') as file: for line in file.readlines(): c_list.append(line.strip().encode('utf8')) else: c = param.encode('utf8') c_list.append(c) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('127.0.0.1', 10001)) print(s.recv(1024).decode('utf-8')) for data in c_list: s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close()
這樣通過兩個(gè)腳本,一個(gè)實(shí)現(xiàn)了常駐進(jìn)程,一個(gè)實(shí)現(xiàn)了傳入?yún)?shù),就可以不斷接受外界請求
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09使用Python操作Excel中圖片的基礎(chǔ)示例(插入、替換、提取、刪除)
Excel是主要用于處理表格和數(shù)據(jù)的工具,我們也能在其中插入、編輯或管理圖片,為工作表增添視覺效果,提升報(bào)告的吸引力,本文將詳細(xì)介紹如何使用Python操作Excel中的圖片,文中有詳細(xì)代碼示例供大家參考,需要的朋友可以參考下2024-07-07win10下tensorflow和matplotlib安裝教程
這篇文章主要為大家詳細(xì)介紹了win10下tensorflow和matplotlib安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09解決CentOS下ImportError: No module named &a
這篇文章主要介紹了解決CentOS下ImportError: No module named '_sqlite3'的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12詳細(xì)整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法
這篇文章主要介紹了詳細(xì)整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08使用 tf.nn.dynamic_rnn 展開時(shí)間維度方式
今天小編就為大家分享一篇使用 tf.nn.dynamic_rnn 展開時(shí)間維度方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01pytorch中交叉熵?fù)p失函數(shù)的使用小細(xì)節(jié)
這篇文章主要介紹了pytorch中交叉熵?fù)p失函數(shù)的使用細(xì)節(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02