@sitev_ru
sitev.ru - мой блог ...

Почему при обращении из браузера Android возникает сигнал SIGPIPE (ошибка EPIPE)?

Написал демон на С++ (линукс). Он слушает, пока не придёт запрос от устройства на Android.

Причем сделал универсально: Android в браузере в адресной строке указываешь IP-адрес/сайт (на котором слушает демон) и сам демон посылает в ответ файл, который сохраняется в браузере.

Использую неблокирующие сокеты, TCP...

Так вот, когда начинает отправляться файл, через некоторое время приходит EPIPE (errno = 32 - Broken pipe). После этой ошибки я закрываю сокет.

Не знаю как будет работать на других Android-телефонах, но мой делает повторный запрос и о чудо - скачивает файл со 2-го раза, без всяких EPIPE! Боюсь, что на других "сотиках", файл просто не скачается...

Если я проделываю тоже самое со своего компьютера, то никаких EPIPE не возникает.

Хотелось бы понять, разобраться, почему так происходит... Кто что может подсказать, чтобы разобраться что происходит...
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы