Java套接字未在某些计算机上连接

时间:2011-04-22 13:42:47

标签: java sockets netbeans

我已经在另一台计算机上用Netbeans创建了几个月的Java SE应用程序。应用程序使用Javas套接字并通过端口4444连接到另一台应用程序到另一台计算机(或同一台)。应用程序在第一台计算机上完美连接到另一个应用程序:从netbeans运行,从命令行运行并从jar文件运行

现在我在另一台计算机上继续该项目。起初我试图在这台计算机Netbeans调试器上运行相同的源代码。应用程序启动,它连接到另一个应用程序,但它立即停止。没有错误消息或异常。屏幕不会冻结,但应用程序也不会开始相互通信。

我还尝试从命令行运行应用程序jar文件。出现同样的问题。它与另一个应用程序建立连接,但没有其他任何事情发生。

最后通过双击它从jar文件启动应用程序。现在它建立连接并开始与另一个连接。

防火墙未阻止应用程序或netbeans。我也尝试用防火墙运行netbeans,但仍然没有结果。 Java已在两台计算机上更新。由于某些原因,应用程序在某些计算机上运行得很好,而在其他计算机上,它会做这件烦人的事情。

2 个答案:

答案 0 :(得分:0)

另一个应用程序可能使用了端口4444。

使用netstat实用程序检查此内容。

您的应用程序应该是可配置的。 I.E.端口4444不应该是硬编码的。

答案 1 :(得分:0)

从正在运行的应用程序中抓取stack trace。它会告诉你程序被“卡住”的位置。

您还可以通过向应用添加日志记录而受益。这会将语句删除到文件或系统out / err,您可以使用它来标识其内部状态。例如;当你写一个插座时:

OutputStream os = socket.getOutputStream();
while (true) {
    System.out.println("write loop:enter");
    os.write("machine 1".getBytes());
    System.out.println("write loop:exit");
}
祝你好运。