日期:2014-05-20  浏览次数:20642 次

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)来判断客户端状态