Я пытаюсь написать код для сервера-сокета, который отправляет содержимое MemoryStream
по сети, используя System.Net.Sockets
.Я попробовал приведенный ниже код для отправки содержимого потока памяти, который не является нулевым, но программа не работала.В чем проблема с кодом и как я могу ее решить, и если есть другой способ, вы можете мне помочь?
C # код для клиента:
using (var ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int read = 0;
while ((read = NetStream.Read(buffer, 0, 1024)) != 0)
{
ms.Write(buffer, 0, read);
}
ms.Position = 0;
stream.Close();
client.Close();
return ms;
}
C # код для сервера:
byte[] buffer = new byte[1024];
MemoryStream ms = new MemoryStream();
ms = response; //response is also NOT null MemoryStream
ms.Position = 0;
int read = 0;
while ((read = ms.Read(buffer, 0, 1024)) != 0)
{
stream.Write(buffer, 0, read);
}
ms.Close();
response.Close();
stream.Flush();
Console.WriteLine("DONE.");
Результаты отладчика: сервер немедленно продолжает выполнение программы, а клиентзастрял.
ПРИМЕЧАНИЕ : идентификатор кода из этого ответа: DataSet & NetworkStream в C #