此处代码是服务器端的,用于传输文件
try {
System.out.println("11111");
socket = serverSocket.accept(); // 等待客户端连接
System.out.println("22222");
} catch (Exception e) {
System.out.println("33333");
continue;
}finally{
System.out.println("44444");
}当客户端启动了,此处打印:11111,22222,44444当只启动服务端,此处只打印:11111。我想判断socket = serverSocket.accept(); 和客户端连接是否成功。例如:
socket = serverSocket.accept(); // 等待客户端连接
if(连接成功){}else{}
现在问题是如果与客户端连接失败,则socket = serverSocket.accept(); // 等待客户端连接
下面就不执行了。

解决方案 »

  1.   

    当然不执行了,这才合理。
    serverSocket.accept(); 是一阻塞方法,就是在等待客户端接入。没有请求就等待,
    有了请求后再做业务处理。
      

  2.   

    至于你这个判断,没用。到了accept之后,自然就是连接成功了。
    if(连接成功){}else{}
      

  3.   

    正解,ServerSocket 就是一个用来侦听客户端请求的。serverSocket.accept()返回的就是一个Socket类
    楼主可以试试打印这个结果System.out.println(serverSocket.accept());如果不是null。。你应该能体会到了吧
      

  4.   

    利用非阻塞socket通信应该可以实现类似的功能