Я создал приложение, которое получает и отправляет данные на сервер с помощью приведенного ниже кода, и заметил, что оно добавляет некоторые символы в строку, которую я отправляю как MemoryStream
, когда получаю строку обратно.Вот код и информация об отладке:
Клиент:
while (true)
{
if (stream.DataAvailable)
{
while ((i = stream.Read(ByteBuffer, 0, ByteBuffer.Length)) != 0)
{
ms.Write(ByteBuffer, 0, ByteBuffer.Length);
if (stream.DataAvailable)
continue;
else
break;
}
ToReturn = Encoding.ASCII.GetString(ms.ToArray());
return ToReturn;
}
}
}
Сервер:
MemoryStream response = new MemoryStream();
response = Protocol.ProcessRequest(dataRecieved, ClientAddr);
#endregion
Console.WriteLine("Trying to send back response." + Encoding.ASCII.GetString(response.ToArray()));
stream.Flush();
response.WriteTo(stream);
Я проверил с отладчиком и что напечатано сконсоль: отправленная информация в порядке, например: response.Id^Name^Type^SubType^Description^AddedBy^AddedDT^IsSpecial^Amount@1^VGA cable^cable^display^Very old and common display cable.^Aviv^14/01/2019 22:04:34^False^3345@2^HDMI cable^cable^display^newer and better display cable. can pass network, audio and info.^Aviv^14/01/2019 22:05:30^False^4793
, но информация, полученная на другой стороне сокета (клиента), была: Id^Name^Type^SubType^Description^AddedBy^AddedDT^IsSpecial^Amount@1^VGA cable^cable^display^Very old and common display cable.^Aviv^14/01/2019 22:04:34^False^3345@2^HDMI cable^cable^display^newer and better display cable. can pass network, audio and info.^Aviv^14/01/2019 22:05:30^False^4793alse^4
- с этими (alse^4
) несколькими символами в конце.Может кто-нибудь сказать мне, в чем проблема кодирования?Спасибо.
ОПЯТЬ: вывод с сервера в порядке