Socket.Receive иногда перехватывает только пакеты - PullRequest
0 голосов
/ 26 февраля 2019

Я делаю Socket.Получите сразу после рукопожатия, но иногда программа зависает в ожидании пакета.

int reciveLength = tcpSock.Receive(handShake, SocketFlags.None); 
int bitfieldLength = tcpSock.Receive(bitfeildRecive, SocketFlags.None);

Первое получено отлично, второе, кажется, не получено.Я думаю, что это условие гонки, так как первое отправляется в "83.1969", а второе в "83.1970".

Когда истечет время ожидания, bitfeildRecive будет просто 65535 байтов 0 с.

Я вижу пакет в Wireshark, это только один пакет.Как я могу заставить программу перехватывать следующий пакет для отправки?

Можно ли это сделать с помощью Socket.Receive?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...