日期:2014-05-17  浏览次数:20729 次

socket无法从服务端判断是否客户端已启动。
此处代码是服务器端的,用于传输文件
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(); // 等待客户端连接
下面就不执行了。

------解决方案--------------------
当然不执行了,这才合理。
serverSocket.accept(); 是一阻塞方法,就是在等待客户端接入。没有请求就等待,
有了请求后再做业务处理。
------解决方案--------------------
至于你这个判断,没用。到了accept之后,自然就是连接成功了。
if(连接成功){

}else{

}

------解决方案--------------------
探讨

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