![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Ellochka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Доброе утро!!
Кто-нибудь знает, как описывается прием сервером сообщений от клиента? Есть несколько обработчиков событий у TtcpServer'а, пытаюсь разобраться со всеми: onServerAccept - происходит тогда, когда врубаю клиента - в этом обработчике описывала передачу сообщений с сервера на клиент. onGetThread - создание потока???? не разобралась с этим событием.. происходит вроде тогда же.. onListening - не поняла, когда происходит данное событие. Есть такие методы как TtcpServer1.Recieveln, recievebuf, recievefrom, но я не знаю где их прописывать - в каком обработчике сервер будет принимать то, что я пошлю с клиента?! Подскажите, пожалуйста! |
|||
|
||||
rytmix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
Недавно писал чат в техникуме, там я использовал дополнительный модуль, в котором были прописаны команды, которые может посылать сервер клиенту или клиент серверу. там использовал Recieveln и в обработчике выполнял необходимое действие в зависимости от принятой команды.
|
|||
|
||||
Romikgy |
|
||||||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
событие после подсоединения клиента
обертка к потоку , я так понимаю на каждое соединение создается отдельный поток, где и идет обработка / работа с клиентом
событие когда сервер начинает слушать порт (готов к принятию клиентов) в OnGetThread : TGetThreadEvent = procedure (Sender: TObject; var ClientSocketThread: TClientSocketThread) of object; TClientSocketThread : Execute в нем и пиши эти методы -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||||||||
|
|||||||||||
Ellochka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Ясно.. А как мне заставить делфи-сервер слушать? Мне надо его поставить в режим ожидания, чтобы он мог принять сигнал от клиента и уже тогда выполнять рабочий код.
- не работает. |
|||
|
||||
lubja |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.8.2008 Где: Ростов-на-Дону Репутация: нет Всего: нет |
я когда писала чат, в обработчике TFrmServer.FormCreate прописала TcpServer.Active := true;
а всю работу с клиентом писала в обработчике TFrmServer.TcpServerAccept. выглядело это так:
|
|||
|
||||
rytmix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
Событие OnAccept, на сколько я понял происходит только при подключении клиента.В случае если клиент посылает разовые команды и отключается,то можно использовать данное событие. В первом ответе ошибка,я отказался от использования TcpServer и TcpClient и использовал ServerSocket и ClientSocket(мне с ними удобнее,как и многим кого я знаю).В северсокете есть событие onclientread,которое происходит при получении данных на порт
|
|||
|
||||
lubja |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.8.2008 Где: Ростов-на-Дону Репутация: нет Всего: нет |
не спорю, много слышала об этом. я писала для универа, и научник мне сказал использовать TcpServer и TcpClient, а слово научника закон. поэтому у меня не было другого выбора. |
|||
|
||||
rytmix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
lubja,я это писал не тебе,а создателю темы.Она не уточнила как должно все использоваться.В твоем случае надо создавать нить,в котором обрабатываешь данные.
|
|||
|
||||
Ellochka |
|
||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
lubja, большое спасибо! то, что надо.
rytmix,
на самом деле уже много где видела высказывания о том, что ServerSocket и ClientSocket удобнее и более функциональны, но взялась за Tcpclient-Tcpserver - посмотрим!
да, это так.. не очень удобно, но делаю все необходимые операции при одном соединении, т.е. все в обработчике OnAccept. Вроде работает ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "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. |