Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск серверов чата в сети [D6, WinXP]


Paylik ©   (2003-05-25 13:53:00) 

Народ! Помогите! Короче, я написал чат для локальной сети и хочу сделать так, чтобы при запуске чата, он сам автоматически искал серверы в сети, а если они не найдены, создает сам. Также надо сделать так чтобы при отключении сервера создавался новый и все клиенты конектились к этому серверу. Как всё это организовать!?


def   (2003-05-29 14:17:00) [1]

UDP по-любому
без проблем и траханья с серверами и клиентами


Digitman   (2003-05-26 17:01:00) [2]


> Paylik


эх и влипнешь ты с ним !

используй UDP-протокол

либо с пом. WinsockAPI либо компонентов Делфи, его инкапсулирующих


Paylik   (2003-05-26 16:44:00) [3]

А как организовать бродкаст?


Digitman   (2003-05-26 16:23:00) [4]


> Vlad Oshin



> C:\Program Files\Borland\Delphi5\Demos\Internet\Chat


дурней примера я не видал) ... в условиях глоб.сети работать не будет... да и в ЛВС - под большим вопросом !

ну а к тому механизму, о коем мы тут с тобой разглагольствуем, пример вообще отношения не имеет)


Vlad Oshin   (2003-05-26 16:10:00) [5]

ну если UDP, то конечно

а мне кажется тут
C:\Program Files\Borland\Delphi5\Demos\Internet\Chat
:)


Digitman   (2003-05-26 15:59:00) [6]

дело в том, что UDP - протокол без гарантии доставки (квитирования) сообщений

Вероятность того, что в сети из-за недоставки по каким-то причинам UDP-пакетов (в момент "выяснения отношений") начнут существовать более одного сервера, далеко не нулевая. А это - бардак.

Нет, imho, все же в сети должны постоянно работать один или более серверов (которые "умеют" поддерживать между собой "межсерверные отношения" по TCP/IP). Тогда клиент, подключившийся к одному из найденных серверов (т.е. ответивших на клиентский broadcast-запрос адреса при поиске серверов), будет иметь возможность работать с клиентами как своего так и других серверов.


Vlad Oshin   (2003-05-26 15:48:00) [7]


> они (те 2 машины, крые хотят быть серверами), начинают м/д
> собой выяснять отношения. Например, шлют друг другу число,
> и у кого больше, повторно оповещает всех, что он сервер

а лучше ждут случайное время и - повтор заявки. Кто первый, тот и сервер.


Vlad Oshin   (2003-05-26 15:44:00) [8]

вдруг 2 машины захотели стать серверами

от них другие уже получили это известие и не лезут в соревнование за право быть сервером

они (те 2 машины, крые хотят быть серверами), начинают м/д собой выяснять отношения. Например, шлют друг другу число, и у кого больше, повторно оповещает всех, что он сервер.

Все в это время молчат и ждут повторной заявки от кого-либо

Ну, принцип

> как в борьбе за право вещания

в сетке.


Digitman   (2003-05-26 15:33:00) [9]


> Vlad Oshin


ниччего не пойму) ... кто от кого отказался ? сервер от клиента ? или клиент от сервера ?


Vlad Oshin   (2003-05-26 15:10:00) [10]

тот, кто не отказался еще раз(повторно) шлет, что сервер он


Digitman   (2003-05-26 15:03:00) [11]


> а другой отказывается


ну и как же клиенту, выбравшему "случайно" Сервер1 , общаться с клиентами Сервера2 (который "случайно" не был выбран) ?


Vlad Oshin   (2003-05-26 14:51:00) [12]


> > Если 2 компа заявили что они серверы, то случайно выбирается
>
> > из них один

а другой отказывается

как в борьбе за право вещания


Digitman   (2003-05-26 13:09:00) [13]


> Если 2 компа заявили что они серверы, то случайно выбирается
> из них один


... а другой ? половина клиентов будет работать с одним сервером, а половина - с другим ?) а между собой серверы - "не вась-вась" ? ... это что же за хрень получится !))

Если уж на то пошло, еще серверы должны "уметь" искать друг-друга и обмениваться по спец.протоколу, дабы клиенты разных серверов не были изолированы и могли общаться друг с другом


Vlad Oshin   (2003-05-26 12:29:00) [14]

Через бродкаст

Клиент по бродкасту спрашивает кто сервер, сервер ему отвечает, если никто - то по бродкасту говорит всем, что он сервер.
Если 2 компа заявили что они серверы, то случайно выбирается из них один


Snap   (2003-05-26 11:46:00) [15]

S pomoishju klientskih i servernyh soketov.


Наверх

Титульная страница Поиск, карта сайта Написать письмо