Socket接收服务端发送过来的数据,如何知道是否接收完全1:发送端
File file = new File(path);
BfferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte[] buf = new byte[100 * 1024];
int len = bis.read(buf);
bos.write(buf, 0, len);
bos.flush();2:接收端
ByteArrayBuffer byteBuffer = new ByteArrayBuffer(0);
while((len = bis.read(buffer)) != -1) {
byteBuffer.append(buffer, 0, len);
}
程序会停在while()循环上,请问这样的问题怎么解决啊javasocket

解决方案 »

  1.   

    socket通信,基本是不关闭socket的,因为要一直保持连接
      

  2.   

    服务端的serverSocket一般是一直接受状态的,就像我们访问服务器一样,一天24小时能连上
      

  3.   

    ====================================
    回答正确,如果只是熟悉Socket怎么用,懂一下原理想怎么弄就怎么弄,如果你要用于项目开发中,就不是这么容易处理了,协议定义是否合理,关系到性能和稳定性。
    学习Socket还是懂一些网络技术原理吧,网络基础课程中有很多组包方案。
    很多人提问Socket的,我一般会推荐去看apache mina开源框架。