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 相关文章推荐
python连接mysql数据库示例(做增删改操作)
Dec 31 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
实践Vim配置python开发环境
Jul 02 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
python爬取指定微信公众号文章
Dec 20 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Python 在局部变量域中执行代码
Aug 07 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
PHP中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
DOM 高级编程
2015/05/06 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
Django用户身份验证完成示例代码
2020/04/03 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
python 实现客户端与服务端的通信
2020/12/23 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
大学生新闻专业个人自我评价
2013/11/12 职场文书
总经理助理的八要求
2013/11/12 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
关于青春的演讲稿
2014/05/05 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
绵山导游词
2015/02/05 职场文书
内勤岗位职责范本
2015/04/13 职场文书
入党介绍人意见2015
2015/06/01 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python