我開發了一個在Java中使用TCP/IP進行聊天的應用程序。到目前爲止,它在同一臺計算機上運行服務器和客戶端時完成了這項工作,但是我想通過局域網工作。通過局域網與TCP/IP進行Java聊天
我發現我將在我的路由器上使用端口轉發,用於我在客戶端&服務器中使用的端口,並將其轉發給我的機器(即服務器)的IP。我還發現我會小心防火牆。
在我的virgin媒體中心路由器上,我使用端口(4444)將協議TCP轉發到本機的本地IP(192.168.0.21)。我也確保沒有端口被阻塞。
對於防火牆,我已確認Windows防火牆未啓用並關閉卡巴斯基反病毒防火牆。
到目前爲止,這並不允許我通過局域網與我的VMware機器進行通信。
這是套接字和服務器套接字的代碼;
客戶:
int portNumber = 4444;
InetAddress host = InetAddress.getLocalHost(); // I also did try changing the host to a String and making host = InetAddress.getLocalHost().getHostAddress();
Socket link = new Socket(host, portNumber);
服務器:
int portNumber = 4444;
ServerSocket serverSocket = new ServerSocket(portNumber);
link = serverSocket.accept();
任何想法,我做錯了什麼,或者失去了一些東西?
哦對不起我忘了提及,我也沒有嘗試改變主機一個字符串,並使主機= InetAddress.getLocalHost()。getHostAddress();這應該會導致與上述建議相同的功能,但這仍不能解決問題 – Adrian
但是...您不希望連接到本地主機嗎? – Ingo
不幸的是你的方式也不行:/因爲我的虛擬機的ping命令超時,所以我決定看看父親的電腦,把他的主機設置爲「192.168.0.8」,但它沒有工作。無論如何,非常感謝你對這個和平進行調查。 – Adrian