当前位置: 首页 > 知识库问答 >
问题:

Java TCP客户端服务器在局域网上使用端口转发,但不使用hamachi

吴鸿彩
2023-03-14

我有一个基本的Java客户机服务器TCP程序,它能够通过局域网连接,也当我使用我的公共ip与端口转发。

让我困扰的是,当我尝试在hamachi VPN网络中使用相同的程序时,它不起作用。我想让它也在那里工作,因为许多人试图避免端口转发,但使用hamachi,因为这似乎对他们更容易。

服务器代码ss=new ServerSocket(4444);客户端c=SS.Accept();

客户端代码套接字客户端=新套接字(,4444);printWriter=new printWriter(new OutputStreamWriter(Client.getOutputStream()));

我搜索了一下,找不到任何关于这个问题的信息,因为通常人们会询问如何避免端口转发,并被告知例如使用hamachi或学习如何转发他们的端口。

提前道谢!

共有2个答案

喻渊
2023-03-14

错误是程序的另一部分确实关闭了一些流,就像在Java中一样,关闭一个封装的流会关闭它下面的所有内容。

班浩皛
2023-03-14

滨町真的会阻塞港口吗?我喜欢使用ncat和nmap来测试这些东西。

“ncat-l portNumber”将启动侦听portNumber的服务器

“nmap-pn-p1234 someHost”将查看某个主机上的端口1234是否打开(而不执行ping操作以确定主机是否先启动)

在您的服务器和客户机中设置上面的操作,在您的端口4444上尝试一下,在一些没有人阻止的端口(如80或443)上尝试一下。如果它对那些正常端口有效,但对4444无效,那么某些东西(滨町?)正在阻塞那个端口。

 类似资料:
  • 我使用python中的套接字设置了一个客户机和一个服务器,客户机向服务器发送数据,服务器执行操作,然后向客户机返回一些数据。最初,客户端和服务器将具有相同的端口号(9999)。我目前的问题是,我必须将服务器端口更改为19999,当我试图运行时,它无法工作。客户端能够发送数据,如果它的端口也更改为19999,但它不工作,如果客户端是9999和服务器是19999,这是我需要的。新的网络系统,所以将感谢

  • 问题内容: 我正在为大型数据集创建交互式可视化。由于数据集的大小,无法将其加载到浏览器中。我们正在节点服务器上使用交叉过滤器来加载和过滤服务器端数据。我想知道是否可以通过某种方式将服务器端交叉过滤器过滤器与dc.js图表​​耦合。 我现在正在使用d3.js创建图表,但是想要使用dc.js中已经存在的各种图表。我们基本上是在服务器端过滤数据,然后在客户端上侦听图表变化,然后在服务器上执行适当的过滤并

  • 您好,我正在尝试从计算机中的本地客户端连接我的服务器。我有一个远程服务器正在运行。。当我从Netbeans运行代码时,一切都正常。。。当我从CMD尝试时,我得到了这个错误 Java语言com上的lang.NullPointerException。太阳企业命名。实施。SerialContext。com上的getORB(SerialContext.java:347)。太阳企业命名。实施。SerialC

  • 问题内容: 我正在构建一个小型聊天应用程序,其中客户端A希望通过服务器B将某些东西发送到客户端C。首先,这是解决问题的正确方法吗?我能够向服务器发送数据或从服务器接收数据,但仅限于客户端。例如,如果客户端A向服务器B发送数据而客户端C向服务器B发送数据,则我可以将数据发送回服务器A和C就像回显服务器一样。但是我想要的是将来自客户端A的数据通过服务器B转发到客户端C。 以下是服务器代码: 客户端代码

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我试图将一个对象从服务器端发送到客户端,但找不到问题。以下是我在客户端遇到的错误: 下面是服务器端方法:无限循环中的separate方法只是从文件中读取,并将用户名和密码解析为ArrayList,这是服务器类中的实例变量。 以下是从服务器请求信息的客户端: 我对学习服务器套接字和套接字还不熟悉,但我在这里试图实现的是以下目标。当我在另一节课上按下按钮时,我会这样做: 几乎是一个通过服务器到clei