2013-07-17 73 views
3

我有一個(python)腳本,必須啓動服務器。服務器顯然應該使用自由端口,並且python腳本必須知道此端口才能與之通信。如何從客戶端腳本中的自由端口啓動服務器?

問題是,我該如何確定這種情況?

  • 無法確定python腳本中的空閒端口,並將它傳遞給服務器,因爲在此期間另一個應用程序可能已佔用此端口。
  • 您不能讓服務器選擇一個端口,因爲該端口對於該腳本是未知的。

這看起來像一個很常見的問題,所以我想它已經被解決了。 要做到這一點的最好方法是什麼?

回答

1

使用首選端口列表,並按優先順序嘗試它們。這個列表當然會被客戶端和服務器所知曉。

我懷疑你是在挑選一個低端口。由於大多數較低的端口(接近1024或更低)已經有dedicated applications,所以你想避免這些。

如果你使用更高的端口,碰撞的可能性可以忽略不計,我認爲這是常見的解決方案。

+0

如何以及應該在哪裏嘗試這些端口? –

+0

定義端口列表。 當您啓動服務器時,遍歷列表並嘗試聆聽每個端口,直到找到空閒端口。 當您連接到服務器時,遍歷列表(以相同的順序)並嘗試連接到每個端口。然後通過某種手勢確認您已連接到正確的應用程序。 –

+0

感謝您的建議 –

相關問題