有多个接口时检查正在使用的端口

Vij*_*jay 5 java network-programming tcp serversocket

我知道对于TCP,我们一次只能在一个端口上监听一个应用程序.现在,如果你有2个网卡,你可以让一个应用程序在第一个IP上侦听,第二个在第二个IP上使用相同的端口号.

现在在这种情况下如果我必须检查特定端口是否正在使用,我该怎么做?

我的意图是,即使有多个接口,端口也只能由一个应用程序使用.如果我列出所有接口并使用端口号与循环中的所有接口绑定,或者是否有更好的方法来执行此检查,这是没关系的.

use*_*421 5

我知道对于TCP,我们一次只能在一个端口上监听一个应用程序.

除以下外.

现在,如果你有2个网卡,你可以让一个应用程序在第一个IP上侦听,第二个在第二个IP上使用相同的端口号.

正确.

现在在这种情况下如果我必须检查特定端口是否正在使用,我该怎么做?

见下文.

我的意图是即使有多个接口,也应该使用我唯一的一个应用程序.如果我列出所有接口并使用端口号与循环中的所有接口绑定,或者是否有更好的方法来执行此检查,这是没关系的.

把它绑定到0.0.0.0:port.在Java中,表示空值InetAddress和非零端口号.如果有任何应用程序正在侦听特定接口和相同的端口号,您将获得一个BindException.相反,如果您是第一个,它将阻止任何其他应用程序以任何方式绑定到该端口.