2015-04-17 113 views
0

我需要編寫Python腳本執行幾項任務:什麼是實現python TCP客戶端的最佳方式?

  1. 讀取控制檯命令,並在tcp/ip

  2. 發送到服務器接收服務器響應,進程,使輸出到控制檯。

創建這樣的腳本的最佳方法是什麼?我是否必須創建單獨的線程來偵聽服務器響應,同時在主線程中與用戶交互?有什麼好的例子嗎?

+0

爲什麼你需要兩個線程?上一個命令完成後,您是否關心來自服務器的消息?服務器是否關心用戶在命令中鍵入的內容?我不覺得這兩個工作需要並行發生 – Eric

+0

比我怎樣從控制檯同時接收來自服務器和用戶命令的消息? – Dmitry

+0

你需要嗎?服務器是否曾經發送過一些不響應命令的東西?它不能只是在命令和響應之間切換嗎?即'while True:get_cmd(); send_to_server(); dispay_response()' – Eric

回答

0

呼喚一個最好的辦法代碼示例相當題外話,但此時間過長是註釋。

一般有三種方式來建立這些終端模擬器像應用:

  • 多個進程 - 好舊的Unix cufork
  • 多線程的工作方式 - 從上面的一個變種使用光線方式線程進程
  • 使用select系統調用與多路複用io。

通常,2個第一種方法被認爲是更直接的代碼,一個線程(或進程)處理上行通信,而另一個處理下行通信。由於Python支持多線程,多處理和select調用,因此您可以選擇任何方法,因爲線程比進程更輕,而且多線程優先於多處理,所以我可以選擇任何方法看不到使用過程的理由。

在剛剛我意見繼

除非如果你是在一個較低的水平語言後重寫它上面書寫的模式,我認爲性能不是問題的關鍵,我的建議是使用線程這裏。

相關問題