簡體   English   中英

需要在兩個不同端口上運行的Java ServerSocket和Socket(Client)之間進行連接

[英]Need to connect between a Java ServerSocket and Socket(Client) running on 2 different ports

我正在嘗試使用Java Socket在2台不同的計算機之間進行連接。 服務器和客戶端套接字上的TCP端口如下,

ServerSocket sourceSocket = new ServerSocket(8080, 10, InetAddress.getByName("192.168.1.2"));

在同一台機器上,我還運行客戶端套接字

destSocket = new Socket(InetAddress.getByName("192.168.1.3"), 49984);

在2台不同機器之間的上述情況下,是否可以在端口8080和49984之間發送/接收數據包/數據。 這需要NAT嗎?

同一台計算機上的兩個端口之間發送數據包不需要任何類型的NAT,也不需要任何網絡-您根本不需要連接到Internet。 通過在同一計算機上的不同端口上打開兩個插槽,無需進一步配置即可在這兩個插槽之間發送數據。

為了從機器#1發送到另一台機器(稱為機器#2),必須在機器#2上打開一個套接字(通過在另一台機器上運行代碼),該套接字已准備好接受來自該套接字上的傳入數據。機器#1。 另外,客戶端套接字必須將數據發送到正確的IP和端口-因此,當您使用new Socket打開端口時,您要定義new Socket地址 ,但不能定義它將發送數據的位置。

因此,盡管這些命令或多或少是正確的,但為了在兩者之間發送數據,必須在1號計算機上運行一個命令,在2號計算機上運行一個命令。 您還必須確保客戶端發送數據到服務器的地址,而不是本身-打開端口並沒有定義,其中數據將被發送 ,只有

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM