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

 更新时间:2020年07月21日 14:36:57   作者:Mars.wang  
这篇文章主要介绍了Python常驻任务实现接收外界参数代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

实现一个简单的常驻任务是容易的,写一个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()

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

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

相关文章

  • PyQt5多线程防卡死和多窗口用法的实现

    PyQt5多线程防卡死和多窗口用法的实现

    这篇文章主要介绍了PyQt5多线程防卡死和多窗口用法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 使用Python操作Excel中图片的基础示例(插入、替换、提取、删除)

    使用Python操作Excel中图片的基础示例(插入、替换、提取、删除)

    Excel是主要用于处理表格和数据的工具,我们也能在其中插入、编辑或管理图片,为工作表增添视觉效果,提升报告的吸引力,本文将详细介绍如何使用Python操作Excel中的图片,文中有详细代码示例供大家参考,需要的朋友可以参考下
    2024-07-07
  • python生成验证码图片代码分享

    python生成验证码图片代码分享

    这篇文章主要为大家介绍了python生成验证码图片代码,生成原理是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素,想要实现验证码图片的朋友可以参考一下
    2016-01-01
  • 对python Tkinter Text的用法详解

    对python Tkinter Text的用法详解

    今天小编就为大家分享一篇对python Tkinter Text的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 查看python安装路径及pip安装的包列表及路径

    查看python安装路径及pip安装的包列表及路径

    这篇文章主要介绍了查看python安装路径及pip安装的包列表及路径,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • win10下tensorflow和matplotlib安装教程

    win10下tensorflow和matplotlib安装教程

    这篇文章主要为大家详细介绍了win10下tensorflow和matplotlib安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 解决CentOS下ImportError: No module named '_sqlite3'的问题

    解决CentOS下ImportError: No module named &a

    这篇文章主要介绍了解决CentOS下ImportError: No module named '_sqlite3'的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法

    详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法

    这篇文章主要介绍了详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 使用 tf.nn.dynamic_rnn 展开时间维度方式

    使用 tf.nn.dynamic_rnn 展开时间维度方式

    今天小编就为大家分享一篇使用 tf.nn.dynamic_rnn 展开时间维度方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • pytorch中交叉熵损失函数的使用小细节

    pytorch中交叉熵损失函数的使用小细节

    这篇文章主要介绍了pytorch中交叉熵损失函数的使用细节,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论