我正在構建一個使用Twisted的應用程序,其中服務器包含一些定時器,並且每秒多次通過UDP將定時器值寫入客戶端。客戶端需要能夠向服務器發送各種命令(如「暫停計時器1」或「重置計時器2」)以更改發送到客戶端的計時器。我看到的問題是,客戶端不斷記錄從服務器接收到的定時器值,所以我不知道如何在沒有阻塞的情況下做到這一點。我想要異步執行此操作,而無需使用任何線程。 Twisted提供了大量的異步IO選項,但我真的不確定哪個最合適,因爲其中的一些(如basic.LineReceiver協議)在等待用戶輸入時仍然阻塞。同時使用Twisted記錄並執行命令行輸入
由於提前, 本
附:這是我的第一篇文章,請讓我知道我可以做的任何改進。
非常感謝Jean-Paul。我早先看了一下twisted.internet.stdio,但看起來並不像我期待的那樣。看起來我仍然有一些關於Twisted的學習方法! –
看起來給出的示例在Windows上不起作用,由於某些原因,Win32Api不斷將stdin的值設置爲3,將stdout的值設置爲7(而不是扭曲的預期0和1)。我將使用'raw_input'和'threads.deferToThread()'來實現一個不同的方法。也許開始在Linux上開發... –