求解,用Socket发送文件接收后文件变大了
//发送端byte[] by = new byte[10240];
while ((number = fileStream.Read(by, 0, 10240)) > 0)
{
newSocket.Send(by);
fileStream.Flush();
by = new byte[10240];
}
//接收端
byte[] by = new byte[10240];
while ((number = fileSocket.Receive(by)) > 0)
{
fs.Write(by, 0, number);
fs.Flush();
by = new byte[10240];
}
fs.Close();
fileSocket.Close();
如果发送txt文件会发现原内容后面多了很多空的东西
求高人解答 --------------------编程问答-------------------- 应该是逻辑的问题,仔细看看你的number变量吧。
--------------------编程问答-------------------- - -!
大哥
//发送端
byte[] by = new byte[10240];
while ((number = fileStream.Read(by, 0, 10240)) > 0)
{
newSocket.Send(by);
fileStream.Flush();
by = new byte[10240];
}
by是10240长度的字节数组
你发送的时候是发送by
接收方当然是接受10240长度的字节数组了,如果你的文件没有10240的长度,这时候对方也是接收10240长度的内容,多出来的地方就会补0,所以你写进的文件当然也是比源文件要大的,你有没有发现文件大是变大了,可是里面的内容是对的,只是多了很多空
--------------------编程问答-------------------- 的确 --------------------编程问答-------------------- 你把by的长度放小点,或者你真想把by长度定为10240的话也可以,发送的时候在加个判断就可以,当文件长度小于10240的时候就发送文件长度的by
补充:.NET技术 , C#