2011-05-01 115 views
1

我有一個簡單的node.js客戶端和服務器程序在一臺機器上運行,當我嘗試用第二個客戶端程序實例連接服務器時,出現EADDRINUSE, Address already in use錯誤。在同一臺計算機上是否可以有兩個或多個基於TCP的套接字客戶端連接(使用createConnection創建)到一臺服務器(使用createServer創建),或者只有一個客戶端程序可以同時連接到服務器?在一臺機器上連接兩個(或多個)套接字客戶端

回答

3

是的,這是可能的。事實上,非常普通的。許多應用程序打開幾十個或數百個連接到同一臺服務器。這聽起來像你的客戶端程序綁定在一個端口上。只有服務器應該綁定在一個端口上。你應該驗證。

客戶端通常會使用由您的操作系統分配的1024-65535之間的隨機端口。你不需要擔心它。由於客戶端正在啓動到服務器的連接,因此服務器端口對於一個程序必須是唯一的。這就是爲什麼你的問題意味着你試圖啓動服務器兩次。請參閱http://www.tcpipguide.com/free/t_TCPIPClientEphemeralPortsandClientServerApplicatio.htm

相關問題