Здравствуйте. Никак не могу правильно представить реализацию следующего приложения. Оно должно подключится к n-му количеству серверов и ждать подключения к себе клиента. Как только клиент подключается к создаваемому приложению, все данные, что клиент шлет нам, мы рассылаем всем серверам, к которым подключились. А ответы от серверов шлем обратно клиенту. Следует отслеживать таймауты (так требует протокол поверх TCP) и дисконнекты (как только он обнаружился, пытаемся подключиться заново — тоже та ещё задачка). Реализовать надо на неблокирующих сокетах. Подскажите хотя бы как в общем случае подобное реализуется, может быть пример? Интересует так же правильная реализация механизма взаимодействия между клиентом и серверами. Все, что приходит на ум кажется велосипедом с квадратными колесами. Наверняка есть лаконичное решение. Голову сломал уже( Пишу на С под linux.
Пробовал заюзать libevent, в общем случае удобно. Но чтобы обработать все таймауты, передать сообщения и обработать все дисконнеты нужно выстроить кучу костылей.
Здравствуйте, trafalgarx, Вы писали:
T>Здравствуйте. Никак не могу правильно представить реализацию следующего приложения. Оно должно подключится к n-му количеству серверов и ждать подключения к себе клиента. Как только клиент подключается к создаваемому приложению, все данные, что клиент шлет нам, мы рассылаем всем серверам, к которым подключились. А ответы от серверов шлем обратно клиенту. Следует отслеживать таймауты (так требует протокол поверх TCP) и дисконнекты (как только он обнаружился, пытаемся подключиться заново — тоже та ещё задачка). Реализовать надо на неблокирующих сокетах. Подскажите хотя бы как в общем случае подобное реализуется, может быть пример? Интересует так же правильная реализация механизма взаимодействия между клиентом и серверами. Все, что приходит на ум кажется велосипедом с квадратными колесами. Наверняка есть лаконичное решение. Голову сломал уже( Пишу на С под linux.
ровным счётом ничего сложного.. я даже не знаю, где здесь можно налажать..
одна сущность обрабатывает клиентов, другая общается с серверами, между ними обмен и синхронизация..
T>Пробовал заюзать libevent, в общем случае удобно. Но чтобы обработать все таймауты, передать сообщения и обработать все дисконнеты нужно выстроить кучу костылей.