Почему при обращении из браузера Android возникает сигнал SIGPIPE (ошибка EPIPE)?
Написал демон на С++ (линукс). Он слушает, пока не придёт запрос от устройства на Android.
Причем сделал универсально: Android в браузере в адресной строке указываешь IP-адрес/сайт (на котором слушает демон) и сам демон посылает в ответ файл, который сохраняется в браузере.
Использую неблокирующие сокеты, TCP...
Так вот, когда начинает отправляться файл, через некоторое время приходит EPIPE (errno = 32 - Broken pipe). После этой ошибки я закрываю сокет.
Не знаю как будет работать на других Android-телефонах, но мой делает повторный запрос и о чудо - скачивает файл со 2-го раза, без всяких EPIPE! Боюсь, что на других "сотиках", файл просто не скачается...
Если я проделываю тоже самое со своего компьютера, то никаких EPIPE не возникает.
Хотелось бы понять, разобраться, почему так происходит... Кто что может подсказать, чтобы разобраться что происходит...