【问题标题】:Port absolutely refuses to open, despite best efforts尽管尽了最大努力,港口绝对拒绝开放
【发布时间】:2014-08-13 16:55:26
【问题描述】:

所以,我正在尝试构建一个简单的 java 聊天应用程序。

应用程序应该在端口 5000 上建立连接。当我试图将 jar 给我的女朋友以便她可以测试客户端时,她的连接被拒绝,所以我首先检查我的端口。 5000 端口绝对拒绝打开。

我已经尝试了所有我能想到的东西(尽管我绝对不是 IT 专家,所以我可能会错过一些东西);

以下是我采取的步骤:

  • 在命令提示符下(在服务器运行时)我使用了netstat -an,发现端口 5000 被列为监听。当服务器未运行时,不会列出此端口。
  • 我已在我的装备和路由器设置中禁用了所有防病毒软件/防火墙。
  • 我已经为我的装备设置了一个静态 IP。
  • 我的路由器上已将端口转发到端口 5000,并检查并再次检查我是否正确完成了它。
  • 我什至联系了我的 ISP,他们发誓他们不会阻止端口。
  • 我尝试过其他端口,而不仅仅是 5000。

在上述步骤之后,我使用了几个不同的源来检查端口 5000 是否打开。 那东西比迈克尔·摩尔的动脉更堵。

我的问题:为什么互联网讨厌我?

编辑:经过无数小时的聊天,我们(我自己和用户 roelofs)能够让它在 21 端口(ftp 端口)上工作,这不是问题,因为不会有任何冲突,但它不是t 正确。如果有人能指出我正确的方向,我将不胜感激。这似乎是某种特定于 Windows 的问题?也许?可以确认端口已正确转发,并且我能想到的任何类型的安全都已关闭。

【问题讨论】:

  • 首先,从等式中删除您的代码。只需从netcat 开始收听,然后尝试远程登录到端口或其他东西。如果你不能让它工作,这不是一个编程问题,可能应该重定向到superuser.com
  • @redFIVE 你读过这个问题了吗?
  • 是的,当然。这就是它存在的目的。如果您遇到连接问题,请在执行更复杂的操作之前专注于证明连接存在。
  • 您的路由器(如果有的话)是否设置为转发连接?
  • @roelofs 我有一个组合的调制解调器/路由器。是的。

标签: java sockets connection port portforwarding


【解决方案1】:

“连接被拒绝”意味着在您尝试连接的 IP:port 上没有任何监听。因此,IP 或端口不正确,或者您的服务器没有运行。如果 IP 和端口正确,也意味着您的防火墙正在正确转发端口。

另一方面,“连接超时”到当前 Ip:port 表明您的防火墙未正确设置。

【讨论】:

  • 昨晚我实际上遇到了这两个错误。 (后者先做了一些代码改动,然后是前者)
  • 另外,通过netstats我已经确定服务器正在监听
【解决方案2】:

经过一些测试,windows 似乎在侦听 1024 以上的套接字时可能会出现问题。在低于 1024 的端口上运行代码(并正确设置所有端口转发)应该可以让您进行调试。

【讨论】:

  • Windows 没有“超过 1024 的端口有问题”。我目前正在使用超过 50,000 个的数百个端口,完全没有任何问题。
  • @EJP 别管他,他是 Linux 用户哈哈。而且我认为他的意思是端口 21 (ftp) 出于某种原因工作,尽管我们所做的与其他端口(例如 5000、22542 等)所做的没有什么不同。
  • 我们测试了几个小时,这似乎是他的设置特有的问题,因此评论说至少能够在最后进行调试。
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 2016-07-26
相关资源
最近更新 更多