Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
某些计算机上没有连接Java套接字_Java_Sockets_Netbeans - Fatal编程技术网

某些计算机上没有连接Java套接字

某些计算机上没有连接Java套接字,java,sockets,netbeans,Java,Sockets,Netbeans,几个月来,我一直在用Netbeans在另一台计算机上开发JavaSE应用程序。该应用程序使用Javas套接字,并通过端口4444将另一个应用程序连接到另一台计算机(或同一台计算机)。应用程序在第一台计算机上完美地连接到另一个应用程序:从netbeans运行、从命令行运行和从jar文件运行 现在我在另一台计算机上继续这个项目。起初,我尝试在这台计算机上运行相同的源代码Netbeans调试器。应用程序启动,并连接到另一个应用程序,但立即停止。没有错误消息或异常。屏幕不会冻结,但应用程序也不会开始相互

几个月来,我一直在用Netbeans在另一台计算机上开发JavaSE应用程序。该应用程序使用Javas套接字,并通过端口4444将另一个应用程序连接到另一台计算机(或同一台计算机)。应用程序在第一台计算机上完美地连接到另一个应用程序:从netbeans运行、从命令行运行和从jar文件运行

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

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

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


防火墙没有阻止应用程序或netbeans。我还尝试在防火墙关闭的情况下运行netbeans,但仍然没有结果。两台计算机上的Java都已更新。由于某些原因,该应用程序在某些计算机上运行良好,而在其他计算机上,它会执行这种恼人的操作。

端口4444可能被其他应用程序使用

使用实用程序检查此项

您的应用程序应该是可配置的。也就是说,端口4444不应硬编码。

从正在运行的应用程序中获取一个。它会告诉你程序“卡住”的地方

您还可以从将日志添加到应用程序中获益。这会将语句拖放到文件或system out/err中,您可以使用该文件或system 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");
}

祝你好运。

它通过双击jar文件而不是从命令行运行来工作,这真的很奇怪。如何从命令行运行它?好的。我开始在代码行之间放置一些System.out.println(“东西”)。出于某种原因(我完全不知道为什么),在我将这个print命令插入一个等待用户连接的循环后,它开始工作。如果我将System.out.println(“…”)从循环中取出,应用程序将不会启动。奇怪。这表明在你的事件循环中可能有一个潜在的时间问题。如果您可以使用循环代码更新问题,这将有所帮助。