пытаюсь общаться с устройством через БТ. Использую winsock2
создаю сокет, вызываю коннект - всё нормально. связь устанавливается. далее посылаю пакет и пытаюсь вычитать...
char array[100] = {0x80, 8, 0xff, 0x7f, 2, 0x27};
iResult = ::send(sock, array, 8, 0);
if (iResult == SOCKET_ERROR)
{
return getLastErrorAsString();
}
iResult = shutdown(sock, SD_SEND);
iResult = ::recv(sock, array, 100, 0);
send возвращает 8, но в применом устройстве нет этого приема. ни чего приемное устройство не получает. если поставить точку останова на строке
iResult = ::send(sock, array, 8, 0);
и дальше пошагово пройти, то все функции (send, shutdown и recv) выполняются нормально и я ответ получаю. если непошагово, то ответа нет.
если между send, shutdown и recv поставить секундные паузы, то тоже всё нормально работает. Почему без пауз не работает?