Вот есть у меня массив байтов:
const int BUFFER_SIZE = 256;
byte[] buffer = new byte[BUFFER_SIZE];
Допустим, где-нибудь я вызываю метод:
socket.BeginReceive(buffer, 0, BUFFER_SIZE, 0, ReceiveCallback, socket);
Затем на сокет приходит какая-то информация, вызывается метод BeginReceive, в котором я принимаю сообщение, проверяю массив на пустоту и что-нибудь отправляю, если он не пустой:
Socket socket = (Socket)AR.AsyncState;
int bytes = socket.EndReceive(AR);
if (bytes > 0) {
buffer = BitConverter.GetBytes(12345);
socket.Send(buffer);
}
И вот теперь, когда мне снова нужно начать получать данные, в этом же методе я вызываю:
socket.BeginReceive(buffer, 0, ?, 0, ReceiveCallback, socket);
Каким должен быть размер получаемого массива?
Иногда случается так, что приходят старые данные, т.е. buffer не изменяется при получении, или вовсе приходит пустой массив. Почему так происходит? Как это вообще работает?
Прошу ссылки на MSDN или не присылать, или вкратце рассказывать, что там написано. Я не сильно дружен с MSDN.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники