【问题标题】:How to identify Server Socket port behind NAT如何识别 NAT 后面的服务器 Socket 端口
【发布时间】:2013-01-09 19:15:32
【问题描述】:

我的 PC_1 中有一个服务器套接字等待接受。 PC_2 想要连接该服务器套接字。但是 PC_1 和 PC_2 在 NAT 之后。所以PC_2不知道PC_1监听的真正端口是什么。我想要一种机制来识别这个服务器套接字外部端口。 我不想在路由器 (NAT) 上转发​​我的端口。我知道这可以通过 TCP 打孔来完成。但是我没有找到从服务器套接字发送数据包的方法。那么我可以做到这一点的方法是什么。谢谢!

【问题讨论】:

  • 是 TCP 吗?还是 UDP 也行?
  • 如果您的路由器支持 UPnP,您应该查看一些用于 Java 的 UPnP 库
  • @Aniket 是的,它是 TCP。不是 UDP。
  • 我从未见过任何可能的 TCP 打孔实现,在我看来,虽然理论上可行,但有其实际问题
  • 我刚刚阅读了关于 TCP 打孔的 Wikipedia 文章。我现在感觉有点不舒服。你绝对不能在纯 Java 中做到这一点。它不支持序列号等黑客所需的原始 IP 数据包访问。

标签: java tcp serversocket


【解决方案1】:

我看到没有转发,但我不知道您的意思是手动还是通过编程。如果你不介意稍微编程,那么你应该看看Cling

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 2016-09-09
    • 1970-01-01
    • 2014-04-08
    • 2017-02-18
    • 2023-03-14
    • 2014-05-28
    • 1970-01-01
    相关资源
    最近更新 更多