簡體   English   中英

Java Servlet返回遠程端口0?

[英]Java Servlet Returns Remote Port of 0?

我正在使用部署在Google AppEngine上的servlet來響應客戶端的遠程端口號。 HttpServletRequest.getRemoteAddr()工作正常,但getRemotePort()返回0?

端口0無效。 我嘗試了其他IP服務,這些服務告訴我正常的端口號(即55046或其他名稱),但是每次從瀏覽器或Java代碼訪問它時,我的servlet都會返回0。

我的最終目標是能夠在查找收件人的地址和外部端口位置時告訴連接發起者,以便TCP穿孔技術能夠正常工作。

這是什么原因呢? 如何獲得實際的端口號(如果可能)? NAT路由器不使用代理端口嗎?

我不確定為什么getRemotePort將返回0,但是對於您的最終目標,知道客戶端端口是無用的。 將為每個連接重新分配客戶端端口。 實際上,如果第一個連接使用55046,則客戶端端口的全部意義在於新連接使用另一個未使用的客戶端端口號。

這使得它無用的信息來配置防火牆策略中的漏洞。 您將不需要客戶端端口。 如果您只想允許從該客戶端地址進行訪問,則需要的是服務器端口,服務器地址以及可選的客戶端地址。

暫無
暫無

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

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