0

有一个程序叫PC^2(编程竞赛评审系统)。您可以向它提交 java 文件,它会编译/运行它。

我有一个创建套接字的程序,当我将它提交给 PC^2 时,它运行良好,但我无法在我的网络浏览器上访问 url (http://ip:port/)。但是当我退出 PC^2(我的程序仍在运行)时,当我在我的网络浏览器上点击刷新时它就可以工作了。这意味着 PC^2 以某种方式阻塞了端口,但没有占用它(即使其成为占用该端口的自己的 ServerSocket),因为如果它占用了它,那么我的程序将抛出异​​常并退出。

Java 程序有哪些可能的方法可以做到这一点?而且由于 PC^2 是封闭源代码,因此我无法查看。

4

2 回答 2

3

一次只有一个程序可以监听某个端口。

如果您使用某个端口启动两次tomcat,也会发生同样的情况

这与java无关。这就是套接字的工作方式

于 2012-04-06T18:07:56.910 回答
1

如果 PS^2 在本地运行,您可以在运行程序之前检查它是否正在侦听。我看到PS2 版本 9 使用套接字进行通信,所以这可能是怎么回事?在 Windows 中,这些说明将有助于确认哪个进程正在侦听端口。在 linux 中,此页面会有所帮助

于 2012-04-06T19:58:03.620 回答