gpt4 book ai didi

python - 在 Python 中监听连接时接收命令行输入

转载 作者:太空狗 更新时间:2023-10-30 00:00:27 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,让客户端连接到它,而服务器仍然能够向所有客户端发送命令。我正在使用“Twisted”解决方案。我该怎么做?这是我到目前为止的代码(我知道 Twisted 已经使用了非阻塞套接字):

import threading
print 'threading.'

def dock():
try:
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor
import currentTime
print '[*]Imports succesful.'
except:
print '[/]Imports failed.'

#Define the class for the protocol
class Master(Protocol):
command = raw_input('> ')
def connectionMade(self):
print 'Slave connected.'
print currentTime.getTime() #Print current time
#self.transport.write("Hello")

def connectionLost(self, reason):
print 'Lost.'
#Assemble it in a "factory"

class MasterFactory(Factory):
protocol = Master


reactor.listenTCP(8800, MasterFactory())

#Run it all
reactor.run()

def commandline():
raw_input('>')

threading.Thread(target=dock()).start()
threading.Thread(target=commandline()).start()

最佳答案

既然您已经在使用 twisted,您也应该将它用于控制台部分,而不是在线程中使用 raw_input

Twisted 的事件循环可以监视任何文件描述符的变化,包括标准输入,因此您可以在输入的新行上获得基于事件的回调——它异步工作而不需要线程。

我找到了这个 example of a interactive console in a twisted application ,也许你可以使用它。

关于python - 在 Python 中监听连接时接收命令行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207669/

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