关于Socket接收二进制流的字节数不一致的问题?(急!!!) 各位大侠:我从server端接收二进制的流文件,然后写到文件中去。确认网络和数据没有问题,本来是512个字节,可怎么一直接收的长度不对,有时503、504、510等。请教具体的接收算法和写文件的方法,解决立即给分,在线等待。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tcp/ip栈的问题,建议你先写一个临时文件,或者读取固定的字节数(可以考虑循环读) Squall1009(钰枫),您能给个具体的代码吗?感谢 你假如确定你每次要读512个字节的话,你先写一个临时文件,然后去读临时文件。这个是解决这个问题最简单的方法。因为从socket中读东西有可能读不满你需要的字符数就返回了。 假如说你的目的就是传文件的话,你判断文件结束的标志不是read的返回值是512,而应该是read的返回值是0或者-1(你可以自己试一下) 楼主说的“503、504、510等”长度是不是指生成的文件的长度?如果是的话,那请你注意了,很可能是二进制流中出现的 0D 0A 在文件中被写成了 0A。如果你的接收端程序是在 Linux 上的话,可能性就更大了…… 你是不是建了一个byte数组,然后读入再发送的吧??我以前也是这样,不过不影响文件运行,你可以一个个字节的读,用BufferedInputStream read();例如: int data; while((data=bin.read()) != -1) { // Socket发送 } // DataOutputStream包装Socket 发送一个文件结束标志, int endFile = -1; 例如: writeInt(endFile); 另一端利用DataInputStream包装Socket来接收 int endFile = readInt();大概思路就这样,参考下 刚想个挺有意思的程序 java数组赋值的地方报错 双核电脑对学线程有影响吗? qik手机"现场直播"的应用成为现实,国内有没有这样的技术和产品 求Applet中图片重叠问题 发布jtotem2.0图形工具 Java基础问题,关于静态方法Static的问题,希望您能耐心帮我解答!谢谢!!! 为什么这样写编译不过?? 如何在一个JFrame中加上一个网页上连接?? 一个让我感到模棱两可的问题? 求达人解代码 简单的图片操作问题。
我以前也是这样,不过不影响文件运行,
你可以一个个字节的读,
用BufferedInputStream read();
例如:
int data;
while((data=bin.read()) != -1)
{
// Socket发送
}
// DataOutputStream包装Socket
发送一个文件结束标志,
int endFile = -1;
例如: writeInt(endFile);
另一端利用DataInputStream包装Socket来接收
int endFile = readInt();大概思路就这样,参考下