Ошибка OutOfMemoryException при передаче больших файлов - C#
Формулировка задачи:
Приветствую! Используя приложение (клиент сервер), при передаче больших файлов выходит ошибка:
Выдано исключение типа "System.OutOfMemoryException"
Что с памятью не так?
Решение задачи: «Ошибка OutOfMemoryException при передаче больших файлов»
textual
Листинг программы
TcpListener Listen = new TcpListener(localAddr, 6999); Listen.Start(); Socket ReceiveSocket; while (true) { try { ReceiveSocket = Listen.AcceptSocket(); Byte[] Receive = new Byte[256]; Byte[] paket = new Byte[12]; using (MemoryStream MessageR = new MemoryStream()) { Int32 R=0; ReceiveSocket.Receive(paket, paket.Length, 0); ushort id = BitConverter.ToUInt16(paket, 0); long len = BitConverter.ToInt64(paket, 2); ushort nameLen = BitConverter.ToUInt16(paket, 10); Byte[] dop = new Byte[nameLen]; ReceiveSocket.Receive(dop, nameLen, 0); string fileName = Encoding.UTF8.GetString(dop, 0,nameLen); MessageBox.Show(fileName); //Количество считанных байт Int32 ReceivedBytes; do { ReceivedBytes = ReceiveSocket.Receive(Receive, Receive.Length, 0); MessageR.Write(Receive, 0, ReceivedBytes); } while (ReceivedBytes == Receive.Length); using (var File = new FileStream(fileName, FileMode.Create)) { File.Write(MessageR.ToArray(), 0, MessageR.ToArray().Length); } ChatBox.BeginInvoke(AcceptDelegate, new object[] { "Received: " + fileName, ChatBox }); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д