Сокеты непонятные моменты - C#

Узнай цену своей работы

Формулировка задачи:

1. Как выбрать оптимальный размер буфера? Я понимаю что можно поставить и 1 байт данные все равно все будут получены (TCP/IP) , можно выставить такой же как у получателя/отправителя, но что если он там к примеру гигабайт...... 2. Если не известно количество получаемых данных , а известен только байт конца посылки (принимает асинхронный клиент) Callbackrecive { считали пакет if(нет символа конца посылки) Beginrecive } Что то мне напоминает это замкнутый цикл, не нарушается ли здесь принцип асинхронности , может в таком случае правление будет сделать клиента синхронного ?

Решение задачи: «Сокеты непонятные моменты»

textual
Листинг программы
byte[] buff = new byte[1000];
var message = new MemorySream();
 
for(;;)
{
int count = recive(buff, 0, buff.Length);
 
message.Write(buff, 0, count);
 
if (проверка_есть_ли_в_buff_конец_сообщения)
  {break;}
else
  {continue;}
}

Оцени полезность:

13   голосов , оценка 3.769 из 5