Socket接收数据问题
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()循环上,请问这样的问题怎么解决啊 java socket
[解决办法]
发个数据包长度过去呗
[解决办法]
应该是发送端没关闭io
所以接收端不知道.服务端有没有发完.
[解决办法]
socket一定要基于协议!
[解决办法]
服务端的serverSocket一般是一直接受状态的,就像我们访问服务器一样,一天24小时能连上
[解决办法]