![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Привет всем! Надо написать сетевое приложение. Клиент: отсылает данные, сервер принимает их, в ответ посылает ответ. Сервер в любой момент должен быть способен получить список подключенных к нему клиентов и оправить каждому клиенту определенную команду. Я так понимаю, с помощю Indy этого нельзя сделать? Там ведь у клиента нет события прихода информации, а также нельзя будет получить список клиентов, ведь коммуникация происходит между методами connect и disconnect??? Или я ошибаюсь?? Просто мне надо поскорее определить, на чем делать сетевую коммуникацию - на Indy или на TClientSocket & TServerSocket
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Как раз в Indy это уже всё сделано.
Скачай IndyDemos и книжку по инди. |
|||
|
||||
| DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Для себя я в принципе уже определился, просто из интереса - как из сервера послать инфу клиенту? Как клиент вообще узнает, что ему инфа пришла?
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Какая разница - сервер или клиент.
Разница только на этапе установки подключения. А после соединения они работают одинаково. Просто не рви соединение и шли/принимай. |
|||
|
||||
| DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Как я понял клиент сможет получать команды только с помощью проверки прихода инфы по таймеру? Т.е.
??? А если мне надо, чтобы клиент реагировал немедленно? -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
| AugMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.8.2006 Репутация: 1 Всего: 1 |
если есть траблы в понимании инди(сам в нем новайс) - юзай TServerSocket и TClientSocket - там уже есть событие OnRead,.
Чтобы получить список подключенных юзеров, просто используешь TServerSocket..Socket.ActiveConnections и ServerSocket.Socket.Connections[n] // n=0..(ActiveConnections-1) |
|||
|
||||
| DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
С ними возникла трабла небольшая: от клиента к серверу мне нужно передавать и integer и string и record и потоки... В Indy как-то попроще: типа WriteLn ('@SendString'); WRiteLn ('sending string'); А на сервере обрабатывать первую строку, и в зависимости от нее считывать следующий пакет в соответствующую переменную. А вот как с TServerSocket и TClientSocket такое сделать? -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Все данные проходят через OnWork. Только не забывай проверять WorkMode - что там: write или read. А вообще Indy - библиотека синхронная, а не событийная. Так что для постоянной работы лучше вынести работу в отдельный thread и там крутить цикл чтения. Вся работа выполняется последовательно, как с файлом или консолью - прочитал, обработал, записал, снова читаешь... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |