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

Пробовал заюзать libevent, в общем случае удобно. Но чтобы обработать все таймауты, передать сообщения и обработать все дисконнеты нужно выстроить кучу костылей.
tcp libevent сокеты unix
Re: Подскажите по клиент - серверному приложению
От: Gomes Россия http://irazin.ru
Дата: 24.03.11 07:57
Оценка:
Здравствуйте, trafalgarx, Вы писали:

T>Пишу на С под linux.


Под линукс обязательно?
Re: Подскажите по клиент - серверному приложению
От: kopylovn kopylov_ny.livejournal.com
Дата: 01.04.11 14:41
Оценка:
на С обязательно?
Re: Подскажите по клиент - серверному приложению
От: neFormal Россия  
Дата: 08.04.11 08:26
Оценка:
Здравствуйте, trafalgarx, Вы писали:

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


ровным счётом ничего сложного.. я даже не знаю, где здесь можно налажать..
одна сущность обрабатывает клиентов, другая общается с серверами, между ними обмен и синхронизация..

T>Пробовал заюзать libevent, в общем случае удобно. Но чтобы обработать все таймауты, передать сообщения и обработать все дисконнеты нужно выстроить кучу костылей.


не костылей, а логики..
...coding for chaos...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.