socket 发送字节如何判断接收完毕
我用socket接收服务器端发过来的byte[]代码如下
byte[] buf = new byte[2048];
int num = in.read(buf);
while (num != (-1)) {//是否读完所有数据
num = in.read(buf);//继续从网络中读取文件
}
为什么接收完之后就不动了也不提示接收完毕 也没有异常
------解决方案--------------------应该要自定义结束字符
------解决方案--------------------1、最开始就发送整个数据的大小,以此来判断是否接收完毕(HTTP 协议就是这样的)
2、使用自定义的结束字符
------解决方案--------------------必须定义一个结束符,根据结束符进行结束判断
------解决方案--------------------我是发socket.sendUrgentData(1)来判断客户端状态