Я пытаюсь лучше разобраться с асинхронным использованием сокетов.Согласно этой статье, http://msdn.microsoft.com/en-us/library/bew39x2a(v=VS.85).aspx, Я должен иметь возможность проверить количество байтов, возвращаемых EndReceive, и если оно равно нулю, я знаю, что у меня есть все данные, и если оно не равно нулю, то может или может бытьне будет больше данных.Это имеет смысл, но когда я вызываю BeginReceive в последний раз, часто вызывается функция обратного вызова за несколько минут ... Я предполагаю, что что-то должно истечь, но изменение свойства Socket.ReceiveTimeout, похоже, не дает эффекта.
Действительно ли это правильный шаблон для определения того, когда я получил все данные?Особенно, когда я не знаю формат получаемого сообщения?