在SOcket中有个奇怪的现象,如果放到socket的字节大于5000,socket会分两次发送,
在读取的时候就算new byte[30000],也只能读取4380字节,其余的将不会读取,所以解决方法就是分次读取.
在读取的时候就算new byte[30000],也只能读取4380字节,其余的将不会读取,所以解决方法就是分次读取.
使用while(){}读取返回值为-1的时候停止.可以按照下面的例子读取socket中的内容
String sign1 ="";
for(int i=0;i>-1;){
byte[] bs=new byte[30000];
i=req.getInputStream().read(bs);
System.err.println("cout-----"+i);
if(i==-1){
break;
}
System.err.println(new String(bs));
sign1=sign1+new String(bs,0,i);
}
博客指出Socket中存在奇怪现象,当放入的字节大于5000时,Socket会分两次发送,读取时即便使用较大字节数组,也只能读取4380字节。解决办法是分次读取,使用while循环,读取返回值为 -1 时停止,并给出了读取Socket内容的示例代码。
1690

被折叠的 条评论
为什么被折叠?



