Ваша проблема может заключаться в том, что вы не заканчиваете вывод новой строкой. Попробуйте завершить вывод новой строкой (\n
). stdout
является буферизованной строкой, поэтому вы не сможете долго ничего видеть, если не выводите символ новой строки.
Другая возможность состоит в том, что вы не вернетесь с Read()
, если не прочитали указанное количество байтов. В зависимости от значения MAX_RSP_LEN
и количества доступных данных, Read()
может ждать вечно.
Также ваш тест: *p == 0x0a
выглядит подозрительно. Что вы здесь тестируете?
Редактировать : есть еще одна «ошибка»:
else if (rsplen >0)
printf("Revieved response");
done++;
return 0;
else...
Вам не хватает фигурных скобок. В текущей форме код не должен компилироваться. Пожалуйста, оставьте актуальный код.