Форум: "Сети";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
ВнизПоиск серверов чата в сети Найти похожие ветки
← →
Paylik (2003-05-25 13:53) [0]Народ! Помогите! Короче, я написал чат для локальной сети и хочу сделать так, чтобы при запуске чата, он сам автоматически искал серверы в сети, а если они не найдены, создает сам. Также надо сделать так чтобы при отключении сервера создавался новый и все клиенты конектились к этому серверу. Как всё это организовать!?
← →
Snap (2003-05-26 11:46) [1]S pomoishju klientskih i servernyh soketov.
← →
Vlad Oshin (2003-05-26 12:29) [2]Через бродкаст
Клиент по бродкасту спрашивает кто сервер, сервер ему отвечает, если никто - то по бродкасту говорит всем, что он сервер.
Если 2 компа заявили что они серверы, то случайно выбирается из них один
← →
Digitman (2003-05-26 13:09) [3]
> Если 2 компа заявили что они серверы, то случайно выбирается
> из них один
... а другой ? половина клиентов будет работать с одним сервером, а половина - с другим ?) а между собой серверы - "не вась-вась" ? ... это что же за хрень получится !))
Если уж на то пошло, еще серверы должны "уметь" искать друг-друга и обмениваться по спец.протоколу, дабы клиенты разных серверов не были изолированы и могли общаться друг с другом
← →
Vlad Oshin (2003-05-26 14:51) [4]
> > Если 2 компа заявили что они серверы, то случайно выбирается
>
> > из них один
а другой отказывается
как в борьбе за право вещания
← →
Digitman (2003-05-26 15:03) [5]
> а другой отказывается
ну и как же клиенту, выбравшему "случайно" Сервер1 , общаться с клиентами Сервера2 (который "случайно" не был выбран) ?
← →
Vlad Oshin (2003-05-26 15:10) [6]тот, кто не отказался еще раз(повторно) шлет, что сервер он
← →
Digitman (2003-05-26 15:33) [7]
> Vlad Oshin
ниччего не пойму) ... кто от кого отказался ? сервер от клиента ? или клиент от сервера ?
← →
Vlad Oshin (2003-05-26 15:44) [8]вдруг 2 машины захотели стать серверами
от них другие уже получили это известие и не лезут в соревнование за право быть сервером
они (те 2 машины, крые хотят быть серверами), начинают м/д собой выяснять отношения. Например, шлют друг другу число, и у кого больше, повторно оповещает всех, что он сервер.
Все в это время молчат и ждут повторной заявки от кого-либо
Ну, принцип
> как в борьбе за право вещания
в сетке.
← →
Vlad Oshin (2003-05-26 15:48) [9]
> они (те 2 машины, крые хотят быть серверами), начинают м/д
> собой выяснять отношения. Например, шлют друг другу число,
> и у кого больше, повторно оповещает всех, что он сервер
а лучше ждут случайное время и - повтор заявки. Кто первый, тот и сервер.
← →
Digitman (2003-05-26 15:59) [10]дело в том, что UDP - протокол без гарантии доставки (квитирования) сообщений
Вероятность того, что в сети из-за недоставки по каким-то причинам UDP-пакетов (в момент "выяснения отношений") начнут существовать более одного сервера, далеко не нулевая. А это - бардак.
Нет, imho, все же в сети должны постоянно работать один или более серверов (которые "умеют" поддерживать между собой "межсерверные отношения" по TCP/IP). Тогда клиент, подключившийся к одному из найденных серверов (т.е. ответивших на клиентский broadcast-запрос адреса при поиске серверов), будет иметь возможность работать с клиентами как своего так и других серверов.
← →
Vlad Oshin (2003-05-26 16:10) [11]ну если UDP, то конечно
а мне кажется тут
C:\Program Files\Borland\Delphi5\Demos\Internet\Chat
:)
← →
Digitman (2003-05-26 16:23) [12]
> Vlad Oshin
> C:\Program Files\Borland\Delphi5\Demos\Internet\Chat
дурней примера я не видал) ... в условиях глоб.сети работать не будет... да и в ЛВС - под большим вопросом !
ну а к тому механизму, о коем мы тут с тобой разглагольствуем, пример вообще отношения не имеет)
← →
Paylik (2003-05-26 16:44) [13]А как организовать бродкаст?
← →
Digitman (2003-05-26 17:01) [14]
> Paylik
эх и влипнешь ты с ним !
используй UDP-протокол
либо с пом. WinsockAPI либо компонентов Делфи, его инкапсулирующих
← →
def (2003-05-29 14:17) [15]UDP по-любому
без проблем и траханья с серверами и клиентами
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c