gpt4 book ai didi

python - 将命令从命令行发送到 Unix 中正在运行的 Python 脚本

转载 作者:太空狗 更新时间:2023-10-30 01:51:15 24 4
gpt4 key购买 nike

我想构建一个可以在从另一个脚本运行时进行控制的脚本。例如,我想像这样运行我的脚本:

~: Server &

并且能够运行它的功能之一,例如:

~: client func1

根据我的搜索,我发现信号模块有我想要的东西,但它的信号是预定义的,我不能发送我自己的信号。

虽然我想使用网络框架实现客户端/服务器,但我认为这对于我希望我的脚本具有的能力来说太过分了。

谢谢大家

最佳答案

如果您只是想向服务器单向发送命令,比您想象的要容易,使用 Python 的 Sockets .代码示例当然是准系统,因为它们不进行错误处理,并且不多次调用 recv 以确保消息完整。这只是为了让您了解处理命令需要多少行代码。

这是一个服务器程序,它只接收消息并打印到 stdout。请注意,我们使用线程,以便服务器可以同时收听多个客户端。

import socket
from threading import Thread


MAX_LENGTH = 4096

def handle(clientsocket):
while 1:
buf = clientsocket.recv(MAX_LENGTH)
if buf == '': return #client terminated connection
print buf

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

PORT = 10000
HOST = '127.0.0.1'

serversocket.bind((HOST, PORT))
serversocket.listen(10)

while 1:
#accept connections from outside
(clientsocket, address) = serversocket.accept()

ct = Thread(target=handle, args=(clientsocket,))
ct.start()

这是一个向它发送命令的客户端程序。

import socket
import sys


HOST = '127.0.0.1'
PORT = 10000
s = socket.socket()
s.connect((HOST, PORT))

while 1:
msg = raw_input("Command To Send: ")
if msg == "close":
s.close()
sys.exit(0)
s.send(msg)

关于python - 将命令从命令行发送到 Unix 中正在运行的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com