Написал тестовую программу UDS сервера и клиента, UDS = Unix Domain Sockets. Иногда сервер стартует и принимает какие то искаженные данные, это нарушает процесс обмена, и сам сервер виснет и клиент повисает ожидая данные
Сценарий работы прост - клиент подключается к серверу, пишут в сервер данные и получает ответ, затем еще раз пишет данные и получает снова ответ. Если все запускать начисто, холодный старт - то ноль проблем. А вот если повторно, зачастую возникает описанный выше затык
Код примера 2in1, сервер запускается с аргументом, клиент без: http://paste.org.ru/?dsi7xi
Не помогает ни двойной unlink ни remove. Может можно просто при открытии сокета куда то всё вычитать в /dev/null. Почему подобное может возникать и как с это решить?
Что-то подобное, как если бы TCP сервер крэшнулся и некоторое время не позволял бы биндить сокет, просто в UDS это какая-то специфичная проблема, с которой не знаю как бороться. И ведь при старте UDS сервера оно спокойно всё всегда открывает, но при первом же взаимодействии обнаруживаются повисшие данные почему то