У меня типичная ситуация. Мне нужно отправить "запрос" на сервер через TCP и получить ответ.
// socket is connected
socket.Send(CreateRequest());
byte[] br = new byte[VERY_BIG_BUFFER];
int count = socket.Receive(br); // only 4 bytes received: 15 0 0 0
count = socket.Receive(br); // here I receive data I actually need
Однако по какой-то причине мне приходится дважды звонить socket.Receive
, чтобы все заработало.
При дополнительном вызове я получаю только четыре байта: 15 0 0 0.
Жесткое кодирование одного дополнительного звонка без понимания, зачем мне это нужно, может привести к странным проблемам. Кто-нибудь знает, что происходит и зачем мне нужен дополнительный звонок?