2012-09-12 27 views
5

我正在構建一個客戶端 - 服務器聊天應用程序。單個計算機上的套接字編程?

它既有服務器又有客戶端部分。

是否有可能在同一臺機器上測試應用程序,或者我是否真的需要兩臺不同的計算機來運行應用程序。

回答

4

是的,可以在同一臺機器上測試您的應用程序。

在這種情況下,客戶端和服務器的IP地址都是相同的。只需打開客戶端和服務器的不同端口。

+0

服務器將始終監聽單個常量端口。但每個客戶端將不得不打開一個端口(不能與服務器相同)以便與服務器端口進行通信。 –

+0

對不起,我刪除了我的評論,我的意思是通常套接字庫自動執行此操作。我的意思是你只定義了對等端口,讓socket隨機決定使用什麼端口來「出去」。糾正我,如果我錯了。 – raz3r

0

您可以在同一臺機器上測試,只要確保客戶端和服務器綁定到不同的端口即可。

1

您可以在同一臺機器上進行測試。當我輸入這個註釋時,我正在做這件事。 :)

當然你可能會想到正常的事情......例如,你不能在同一個接口上的同一個端口上測試兩個監聽器。但連接到同一個盒子上的服務器的客戶端應該沒問題。

當然,在你發佈之前,你也應該在不同的機器上測試。這可能會暴露單個盒子配置沒有的錯誤。

1

不需要,你可以綁定相同的IP和不同的端口。他們會工作。 或者您可以安裝虛擬機。

0

是的,你可以在本地測試它。您可以使用環回地址127.0.0.1,連接您的機器名稱或IP地址。

如果您要爲您的應用選擇端口號,請確保您瞭解ports are used and reserved適用於其他程序。例如,如果您嘗試使用端口80,則會與運行Web服務器的人發生衝突。

此外,雖然本地測試很棒,但您需要確保瞭解應用程序需要如何在不同的防火牆應用程序和路由器中進行配置。

1

是的,這是可能的。

  • 啓動您的服務器,它將偵聽特定端口(服務器應用程序已定義一個或您必須提供一個端口)。

  • 啓動客戶端應用程序,並使用服務器應用程序監聽的端口號連接到您的計算機(127.0.0.1)。

如果您的程序沒有提供命令行選項來指定它們,您可能必須修改應用程序以更改IP地址或端口號。