fileStream问题急需解答
我写的文件传送的程序有错,文件总是不能全部传过去,我发的文件大小为10MB。下面是主要代码
服务器
程序代码:
Socket tempSocket = mainSocket.Accept(); byte[] receiveStringBytes = new byte[1024]; int receiveBytesLength = tempSocket.Receive(receiveStringBytes); if (receiveBytesLength > 0) { FileStream fs = new FileStream("D:\\11.rar", FileMode.Open, FileAccess.Read); long longs=fs.Length ; long i=0; byte[] buffer = new byte[fs.Length]; while (longs > 0) { fs.Seek(i * 2048, SeekOrigin.Current ); fs.Read(buffer, 0, 2048); longs = longs - 2048; i++; } tempSocket.Send(buffer); fs.Close(); fs.Dispose(); tempSocket.Close (); tempSocket = null;
客户端
程序代码:
FileStream fs = new FileStream(System.Environment.CurrentDirectory.ToString() + "\\11.rar", FileMode.Create, FileAccess.Write); byte[] bytes = new byte[4000]; int len = 0; do { len = s.Receive(bytes); fs.Write(bytes, 0, len); } while (s.Available > 0); fs.Close(); fs.Dispose();
我不太懂怎么把大文件进行分段读取。
Seek()方法也不太会用。
上面是我改了好几遍后的代码。还是不对
谁能帮我改改啊,讲讲啊,我都憋了半天了。
先谢了!