簡體   English   中英

是否可以找到連接到我的服務器的遠程客戶端的偵聽端口?

[英]Is it possible to find the listening port of a remote client connecting to my server?

通過java.net.Socket建立傳入的TCP連接后,我可以找到我的監聽端口以及為此連接創建的端口。 有沒有辦法? 當連接到我的客戶端也是監聽連接的服務器時; 知道此遠程客戶端/服務器在哪個端口上監聽?

感覺像是套接字的錯誤使用。 在我的情況下,它是識別組成我們的應用程序的客戶端/服務器實體。 因此,在建立用於標識的傳出連接時,我可以發送某種問候消息。
但是我很好奇這是否可行,但我沒有找到答案。 有任何想法嗎?

當客戶端連接到服務器時,它將打開一個端口,供您將數據發送到客戶端。 該連接自動連接,以便從服務器寫入套接字將發送到正確的客戶端端口。 如果您想知道Socket.getRemoteSocketAddress()是什么,它將返回一個SocketAddress ,可以將其InetSocketAddress為具有getPort()方法的InetSocketAddress

如果服務器要使用其他端口開放,則必須將端口從客戶端發送到服務器。

例如,如果計算機A正在運行並且SSH服務器在端口1234上,並且它想通知計算機B,以便計算機B可以通過SSH到計算機A,並且計算機B正在偵聽端口1337,則計算機A可以連接到計算機B的端口1337。計算機B,按照“我正在聽1234”的行發送內容,B會讀取該內容,然后B可以使用它通過SSH進入A。

暫無
暫無

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

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