Ошибка 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 });
}
}