Python常驻任务实现接收外界参数代码解析


Posted in Python onJuly 21, 2020

实现一个简单的常驻任务是容易的,写一个while True就可以了,但是同时要能接收外界传来的参数,就稍微有点复杂.

我第一个想到的是网络编程中的server/client模式

server作为常驻进程,可以接受client传来的各种参数进行处理

服务端: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:
    # 接受一个新连接:
    data, addr = s.accept()
    # 创建新线程来处理TCP连接:
    t = threading.Thread(target=tcplink, args=(data, addr))
    t.start()

服务端实现完了,下面我们来实现客户端client.py,客户端支持传入参数或从文件读取参数,来向客户端发送请求

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()

这样通过两个脚本,一个实现了常驻进程,一个实现了传入参数,就可以不断接受外界请求

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

Python 相关文章推荐
Windows8下安装Python的BeautifulSoup
Jan 22 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
python如何统计代码运行的时长
Jul 24 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
Python 里最强的地图绘制神器
Mar 01 Python
Python集合set()使用的方法详解
Mar 18 Python
python中np是做什么的
Jul 21 #Python
从python读取sql的实例方法
Jul 21 #Python
python3.7调试的实例方法
Jul 21 #Python
python如何快速生成时间戳
Jul 21 #Python
OpenCV Python实现图像指定区域裁剪
Mar 12 #Python
openCV提取图像中的矩形区域
Jul 21 #Python
Python文件夹批处理操作代码实例
Jul 21 #Python
You might like
浅析PHP绘图技术
2013/07/03 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
js实现中文实时时钟
2020/01/15 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python2.x中文乱码问题解决方法
2015/06/02 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
小班秋游活动方案
2014/02/22 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书