有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

socketjava服务器socket在绑定到同一端口时不会引发IOException

我的代码有如下问题。 代码:

int port = 14205; // begin port
// Try to bind socket on any port<br>

while(true){

try {
     InetSocketAddress isa = new InetSocketAddress(port);
    Log.logFile("bind port = " + port);

        // ss is a ServerSocket object
    ss.bind( isa );

    break;
} catch (IOException e) {
    Log.logFile("exception");
    port++;
}
 }

我在同一台机器(win7x64)上同时在JVM1.7和JVM1.6上运行了这段代码。使用CurrPorts工具调查我们正在侦听的端口。 结果:我们正在监听同一端口14207。 我认为JVM在运行此代码的第二个实例时必须抛出IOException,但它没有

我的代码怎么了? 请帮忙。 注意:我必须在这个senario中运行(2个JVM)


共 (3) 个答案

  1. # 1 楼答案

    break;将中断while循环并退出while循环,毫无疑问将捕获exception。但是,当您试图捕获异常时,需要将异常消息打印到日志文件中

    换掉这个

    Log.logFile("exception");
    

    用这个

    Log.logFile("exception"+ e.toString());
    
  2. # 3 楼答案

    你的循环在第一次绑定后中断