获取传入请求端口 - App Engine,Java

时间:2014-04-20 14:56:54

标签: java google-app-engine port nat

我在Google App Engine上运行了一个应用程序,客户端在执行HTTP POST(或GET或其他)请求的特定URL上连接到服务器。我的问题很简单:如何获得客户端口?

谢谢你们在这里提供任何帮助!

---附加信息---

请注意,在大多数情况下,“客户端端口”=客户端调制解调器NAT设置的转换端口。如果存在NAT,我不需要他们用来攻击服务器的计算机上的客户端本地端口,因为这对我没用。相反,我要求调制解调器的公共IP端口将请求重定向到我的原始客户端。

我需要此信息在稍后的某个时间点向客户端(通过套接字)发送更多数据。在初始发布请求之后,原始客户端会创建一个服务器套接字,用于侦听来自服务器的请求。如果服务器知道客户端的ip:端口,则它只能向客户端发送请求。

我知道下面的问题请求。虽然已经有3.5岁了,但仍然没有采取任何行动 - 它永远不会被修复。我希望这里的某个人可能知道一个解决方法。

https://code.google.com/p/googleappengine/issues/detail?id=4210&q=Type%3DDefect&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log&start=100

1 个答案:

答案 0 :(得分:0)

Afaik,远程TCP端口的信息无法通过GAE API获得。

大多数情况下,客户端都在NAT后面,因此无法从Internet访问,即使打开了侦听端口,由于NAT转换的单向性,您无法与其建立TCP连接。

如果客户端有公共IP,那么他们只需告诉服务器他们将在哪个端口上监听,然后您就可以使用URL Fetch或Outgoing Sockets建立连接。