客户端-服务器聊天应用程序 JAVA
Client-Server Chat application JAVA
我有一个简单的 java 编写的客户端和服务器聊天应用程序(带套接字)。当 运行ning 在同一个 network/computer 上时,它工作正常。但是,当我尝试 运行 来自不同网络的客户端时,它无法连接。我尝试使用服务器的 public IP 地址将客户端连接到服务器,但没有成功。我如何才能从不同的网络连接到服务器应用程序?任何帮助将不胜感激。
听起来您的防火墙问题多于应用程序问题。不要尝试连接 Java 客户端,而是先尝试从同一台计算机通过 Telnet 连接到服务器,然后再从另一台计算机连接。第一次尝试将向您展示当它起作用时会发生什么。例如,如果您的服务器 运行ning 在端口 999 上,请使用 telnet server.example.com 999
.
如果机器是Linux盒子,用iptables -L
看看你要访问的端口是否有阻塞。
如果您仍然无法访问服务器,请在服务器主机上 运行 tcpdump -i tcp:999
查看有哪些流量正在进入您的服务器套接字,然后 运行 telnet再次命令。您应该看到从本地机器连接时建立的 tcp 连接,从其他机器连接时可能会也可能不会。如果您在从其他机器连接时没有看到它,运行 tcpdump
也可以确保客户端确实将流量发送到服务器。
在您确定服务器可以接收流量并且您的客户端正在发送流量之后,实际发生的事情就没有什么神秘的了,您应该找到您的问题。
我在路由器上做端口转发后就成功了。提供的大多数 ISP modem/routers 不会让您操纵端口,因此我不得不购买自己的 modem/router,转发端口并且工作得很好。可以在此处找到有关什么是端口转发的信息:http://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/
我有一个简单的 java 编写的客户端和服务器聊天应用程序(带套接字)。当 运行ning 在同一个 network/computer 上时,它工作正常。但是,当我尝试 运行 来自不同网络的客户端时,它无法连接。我尝试使用服务器的 public IP 地址将客户端连接到服务器,但没有成功。我如何才能从不同的网络连接到服务器应用程序?任何帮助将不胜感激。
听起来您的防火墙问题多于应用程序问题。不要尝试连接 Java 客户端,而是先尝试从同一台计算机通过 Telnet 连接到服务器,然后再从另一台计算机连接。第一次尝试将向您展示当它起作用时会发生什么。例如,如果您的服务器 运行ning 在端口 999 上,请使用 telnet server.example.com 999
.
如果机器是Linux盒子,用iptables -L
看看你要访问的端口是否有阻塞。
如果您仍然无法访问服务器,请在服务器主机上 运行 tcpdump -i tcp:999
查看有哪些流量正在进入您的服务器套接字,然后 运行 telnet再次命令。您应该看到从本地机器连接时建立的 tcp 连接,从其他机器连接时可能会也可能不会。如果您在从其他机器连接时没有看到它,运行 tcpdump
也可以确保客户端确实将流量发送到服务器。
在您确定服务器可以接收流量并且您的客户端正在发送流量之后,实际发生的事情就没有什么神秘的了,您应该找到您的问题。
我在路由器上做端口转发后就成功了。提供的大多数 ISP modem/routers 不会让您操纵端口,因此我不得不购买自己的 modem/router,转发端口并且工作得很好。可以在此处找到有关什么是端口转发的信息:http://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/