Как я могу диагностировать проблемы с getc Perl?

У меня странные проблемы с функцией getc. Я использую getc для получения символа из обработчика файла сокета. Мне нужно имитировать обмен сообщениями между ПК и мобильным устройством. Для первых нескольких сообщений getc работает нормально. Но для этого getc ничего не смог получить из сокета. Вся программа Perl заблокирована, пока я не перезагрузлю это мобильное устройство. Но wireshark показывает, что сообщение было отправлено на правильный номер порта.

Есть ли инструмент, который я могу использовать для того, что происходит?

Спасибо


person alex    schedule 23.02.2010    source источник


Ответы (1)


Распространенным источником проблем с дескрипторами файлов и сокетов является то, что может быть достигнут конец ввода и может быть установлена ​​ошибка дескрипторов или флаг eof. Попробуйте вызвать seek HANDLE,0,1 для сброса дескриптора после того, как вызов getc ничего не возвращает (или это должен быть sysseek? Является ли getc буферизованной операцией ввода-вывода?

person mob    schedule 24.02.2010
comment
Спасибо за ответ. Я использую wireshark и перехватываю дополнительные Fin, Ack, отправляемые от tcp-клиента, которые вызывают рассинхронизацию следующих трехэтапных рукопожатий. Я исправляю проблему, используя тот же сокет из предыдущего теста. Теперь это выглядит хорошо. - person alex; 24.02.2010