Server端启动了一个线程,客户端给服务端发命令,等服务端执行完(可能要很长一段时间),客户端才继续执行其他操作,怎么实现,谢谢

解决方案 »

  1.   

    客戶端那個方法前+索。
    等到有返回值才釋放synchornized
      

  2.   

    1 将 setSoTimeout 设的足够长,等待吧!
    2 设定一个waiting 标志,然后wait
      服务器端完成后,反向连接客户端,并返回处理结果
    此方法需要客户端也启动一个ServerSocket, 非常类似于 异步的 Web Service 调用3 设定一个waiting 标志,然后wait,Socket 关闭
    另一个检测线程,定期打开连接检测处理结果,成功后通知waiting 的线程4 检测线程放在waiting 里面也可以,循环判断,中间加上 sleep!
      

  3.   

    让客户端阻塞就行了~~InputStream in=socket.getInputStream();
    ObjectInputStream ois=new ObjectInputStream(in);
    while((sent=(TestBean)ois.readObject())!=null){
       //dosometing!
    }