Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 在创建DatagramSocket之前检查端口的可用性_Java_Sockets - Fatal编程技术网

Java 在创建DatagramSocket之前检查端口的可用性

Java 在创建DatagramSocket之前检查端口的可用性,java,sockets,Java,Sockets,这个问题是关于数据报套接字而不是tcp套接字的,因此请先查看它,然后再考虑是否有方法在创建新的数据报套接字之前检查端口。当端口被另一个实例使用时,下面的代码抛出SocketException socket = new DatagramSocket(4446); 我想在创建DatagramSocket对象之前检查它。因此,如果它不可用,我可以增加它并再次检查,直到它变为可用,然后我创建套接字?否。不要认为您可以检查所有可能导致某个失败的情况,然后保证它会成功。首先,您永远无法可靠地覆盖它

这个问题是关于数据报套接字而不是tcp套接字的,因此请先查看它,然后再考虑是否有方法在创建新的数据报套接字之前检查端口。当端口被另一个实例使用时,下面的代码抛出SocketException

    socket = new DatagramSocket(4446);

我想在创建DatagramSocket对象之前检查它。因此,如果它不可用,我可以增加它并再次检查,直到它变为可用,然后我创建套接字?

否。不要认为您可以检查所有可能导致某个失败的情况,然后保证它会成功。首先,您永远无法可靠地覆盖它可能失败的所有方式。其次,在测试之后和操作之前,情况可能会发生变化。相反,试着去做,如果你失败了,处理失败。如果套接字构造引发异常,请尝试另一个端口。

(至少)加上一个表示“之后可能会发生变化”的端口。确保这是有意义的,,。。在它放弃之前,我将循环捕捉并尝试有限的次数。。