我剝了下來我的應用程序,但是這應該給你的我做Python的扭曲與callInThread
def run_app(f):
p = Popen(['/usr/bin/app'],stdout=PIPE)
while True:
o = p.stdout.readline()
if o == '' and p.poll() != None: break
reactor.callFromThread(f, o)
class Echo(Protocol):
def connectionMade(self):
reactor.callInThread(run_app, self.appDataReceived)
def dataReceived(self, data):
data = data.strip()
if data == "getmore":
print "getmore"
def appDataReceived(self, u):
print u
def main():
factory = Factory()
factory.protocol = Echo
reactor.listenTCP(3646, factory)
reactor.run()
if __name__ == "__main__":
main()
我有什麼,我想在連接和運行一個應用程序,不斷地吐出了一個應用程序的例子數據到標準輸出。現在我的應用程序可以工作,但問題是當客戶端退出套接字連接時,/ usr/bin/app仍然繼續運行。更多的套接字連接使得這個應用程序仍在運行。
無論如何Echo Procool殺死run_app()函數?
你可以檢查是否滿足條件:if o ==''and p.poll()!= None:break – pyfunc 2010-11-02 21:03:44