2010-10-14 51 views
2

我有使用雙絞線以下UDP服務器:扭曲的UDP服務器 - 守護進程?

# init the thread capability 
threadable.init(1) 

# set the thread pool size 
reactor.suggestThreadPoolSize(32) 

class BaseThreadedUDPServer(DatagramProtocol): 
    def datagramReceived(self, datagram, (host, port)): 
     #do some stuff here... 

def main(): 
    reactor.listenUDP(PORT, BaseThreadedUDPServer()) 
    reactor.run() 

if __name__ == '__main__': 
    main() 

我希望能夠守護進程這一點,所以從我讀我應該做一個.tac文件的東西,我可以開始「 twistd -y my_udp_server_file.tac「 - 問題是我找不到有關如何使用這種設置來完成此操作的任何文檔。我能找到的所有例子都是關於如何守護簡單的TCP回顯服務器(使用.tac文件) - 我需要一個多線程的UDP服務器,就像我所擁有的那樣。

任何方向將不勝感激。

回答

3

試試這個:

import twisted.application 
application = twisted.application.service.Application("Scotty's UDP server") 
twisted.application.internet.UDPServer(PORT, BaseThreadedUDPServer()).setServiceParent(application) 
+0

感謝。這是我正在尋找的。 – Scott 2010-10-18 20:08:25

3

twistd中的守護程序代碼並不在乎您是否正在提供UDP或TCP。守護UDP服務器的方式與守護TCP服務器的方式相同。您應該能夠使用TCP回顯服務器作爲示例爲您的UDP服務器編寫.tac文件。