Ошибка при принятии данных (строки) сервером C#
Ув. программисты, подскажите, пожалуйста, как решить проблему. Принимаю от клиента текстовую строку:
stream = client.GetStream();
byte[] data = new byte[64]; // буфер для получаемых данных
List<byte> list = new List<byte>(); // Большой buffer
while (true)
{
// получаем сообщение
// StringBuilder builder = new StringBuilder();
int bytes = 0;
do
{
bytes = stream.Read(data, 0, data.Length);
// builder.Append(Encoding.UTF8.GetString(data, 0, bytes));
list.AddRange(data.Take(bytes));
}
while (stream.DataAvailable);
string message = Encoding.UTF8.GetString(list.ToArray(), 0, list.Count);
Но при получение большой строки (1700 байт например) строка режется (вот этим символом �). Если увеличить вместимость массива data больше чем байтов в строке (например, с 64 на 2048 байт), то все работает норм. Подскажите, пожалуйста, почему это происходит и как это исправить, ибо строки иногда могут быть и длиннее…
Заранее большое спасибо!!!