如何在无线网络上启用端口以进行Java套接字编程


0

背景:我编写了一个java服务器客户端程序。服务器接受端口2175上的传入连接,并在2176上写入响应,客户端侦听响应。我通过网络发送序列化对象。

问题:如果我在与服务器相同的机器上运行客户端,这一切都很有效。我将一个客户端jar放在一起,并将其部署在与服务器相同的无线网络上运行的另一台机器上。现在我得到一个“ConnectionException:Connection refused”。所以我认为我应该硬编码服务器和客户端IP,但仍然没有用。

问题:我还需要做些什么来让两台计算机相互通信(在网络方面而不是java方面)?


当你注意到自己时,你并不是在寻找编程答案,所以你在错误的网站上。(请注意,Stack Exchange网络上没有论坛)。
Mat

Answers:


1

如果您拒绝连接,则可以与机器通信,它只是不在侦听该IP地址。尝试在所有IP地址上打开服务(例如,不指定一个)

BTW:你只需要一个端口来发送和接收。


1

第一步,确保客户端实际上尝试连接到服务器的地址(检查代码,清理,重新编译)。下一步,检查您是否可以从客户端ping服务器。下一步,检查任何防火墙,特别是在服务器计算机上,确保它允许端口2175上的传入连接。如果所有这些看起来都没问题,请检查您的路由器是否阻止连接(尽管这有点奇怪)。Wireshark或其他一些数据包嗅探器可以帮助您进一步诊断问题。


0

似乎在客户端系统端口被关闭或阻止或被任何其他应用程序使用。它不依赖于有线或无线网络,它们都依赖于开放端口,并且通常由防火墙策略处理。


0

我也有这个问题。我确定发布此问题的人在他/她部署服务器程序时使用Windows。正如我之前引用的那样,问题出在Windows防火墙上。是的,除了它想要阻止的病毒之外,它会阻止其他一切。:P。

所以,这是我解决问题的方法。在Ubuntu中部署服务器程序,如果您的计算机上没有运行Ubuntu,只需将其安装在我正在进行的虚拟机上。如果您运行的是Windows 8.1 Pro,它会附带一个名为Hyper-V的内置虚拟机。

你所要做的就是

  1. 下载Ubuntu OS并通过Hyper-V运行(而不是安装)它。
  2. 在Ubuntu上安装Java(在Hyper-V上运行)。
  3. 安装Java后,通过在终端中键入“ifconfig”获取运行Ubuntu的虚拟机的IP地址。它的格式为192.168.xx所以,那就是你的服务器IP。
  4. 现在,在Windows上运行客户端程序,当您尝试连接到服务器时,请在客户端程序中提供服务器的IP地址(您刚刚通过上述步骤获得)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.