Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TcpServer. Прием сообщения от клиента, Как описывается прием от клиента? 
:(
    Опции темы
Ellochka
Дата 2.6.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Доброе утро!! 

Кто-нибудь знает, как описывается прием сервером сообщений от клиента

Есть несколько обработчиков событий у TtcpServer'а, пытаюсь разобраться со всеми:

   onServerAccept - происходит тогда, когда врубаю клиента - в этом обработчике описывала передачу сообщений с сервера на клиент.

   onGetThread - создание потока???? не разобралась с этим событием.. происходит вроде тогда же..

   onListening - не поняла, когда происходит данное событие.


Есть такие методы как TtcpServer1.Recieveln, recievebuf, recievefrom, но я не знаю где их прописывать - в каком обработчике сервер будет принимать то, что я пошлю с клиента?!

Подскажите, пожалуйста!
PM   Вверх
rytmix
Дата 2.6.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

Репутация: нет
Всего: нет



Недавно писал чат в техникуме, там я использовал дополнительный модуль, в котором были прописаны команды, которые может посылать сервер клиенту или клиент серверу. там использовал Recieveln и в обработчике выполнял необходимое действие в зависимости от принятой команды.
PM MAIL   Вверх
Romikgy
Дата 2.6.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Ellochka @  2.6.2009,  09:28 Найти цитируемый пост)
 onServerAccept - происходит тогда, когда врубаю клиента - в этом обработчике описывала передачу сообщений с сервера на клиент.

Код

Occurs on server sockets just after the connection to a client socket is accepted.

событие после подсоединения клиента

Цитата(Ellochka @  2.6.2009,  09:28 Найти цитируемый пост)
 onGetThread - создание потока???? не разобралась с этим событием.. происходит вроде тогда же..

Код

A wrapper for the TServerSocketThread event of the same name.
Write an OnGetThread event handler to create and initialize your own thread object for the server connection to use. 

обертка к потоку , я так понимаю на каждое соединение создается отдельный поток, где и идет обработка / работа с клиентом
Цитата(Ellochka @  2.6.2009,  09:28 Найти цитируемый пост)
onListening - не поняла, когда происходит данное событие.

Код

Occurs when a server socket begins listening for connections.

событие когда сервер начинает слушать порт (готов к принятию клиентов)
Цитата(Ellochka @  2.6.2009,  09:28 Найти цитируемый пост)
Есть такие методы как TtcpServer1.Recieveln, recievebuf, recievefrom, но я не знаю где их прописывать - в каком обработчике сервер будет принимать то, что я пошлю с клиента?!

в OnGetThread  : TGetThreadEvent = procedure (Sender: TObject; var ClientSocketThread: TClientSocketThread) of object; 
TClientSocketThread : Execute
            в нем и пиши эти методы
            


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ellochka
Дата 3.6.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Ясно.. А как мне заставить делфи-сервер слушать? Мне надо его поставить в режим ожидания, чтобы он мог принять сигнал от клиента и уже тогда выполнять рабочий код.

Код

  Server.Recieveln(#10);


 - не работает.
PM   Вверх
lubja
Дата 3.6.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.8.2008
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



я когда писала чат, в обработчике TFrmServer.FormCreate прописала TcpServer.Active := true;
а всю работу с клиентом писала в обработчике TFrmServer.TcpServerAccept. выглядело это так:

Код

msg := ClientSocket.Receiveln();
  while length(msg) > 0 do
    begin
      //обработка сообщения от клиента
       newMsg := 'ответ от сервера клиенту'; //какая-то строка
       ClientSocket.Sendln(newMsg);                //  Отправить ее обратно клиенту
       msg := ClientSocket.Receiveln();             //  Получить очередную строку
    end;
  ClientSocket.Disconnect;

PM MAIL   Вверх
rytmix
Дата 3.6.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

Репутация: нет
Всего: нет



Событие OnAccept, на сколько я понял происходит только при подключении клиента.В  случае если клиент посылает разовые команды и отключается,то можно использовать данное событие. В первом ответе ошибка,я отказался от использования TcpServer и TcpClient и использовал ServerSocket и ClientSocket(мне с ними удобнее,как и многим кого я знаю).В северсокете есть событие onclientread,которое происходит при получении данных на порт
PM MAIL   Вверх
lubja
Дата 3.6.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.8.2008
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата

использовал ServerSocket и ClientSocket(мне с ними удобнее, как и многим кого я знаю)

не спорю, много слышала об этом. я писала для универа, и научник мне сказал использовать TcpServer и TcpClient, а слово научника закон. поэтому у меня не было другого выбора.
PM MAIL   Вверх
rytmix
Дата 3.6.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

Репутация: нет
Всего: нет



lubja,я это писал не тебе,а создателю темы.Она не уточнила как должно все использоваться.В твоем случае надо создавать нить,в котором обрабатываешь данные.
PM MAIL   Вверх
Ellochka
Дата 4.6.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



lubja, большое спасибо!  то, что надо.

rytmix
Цитата

использовал ServerSocket и ClientSocket(мне с ними удобнее,как и многим кого я знаю)

 на самом деле уже много где видела высказывания о том, что ServerSocket и ClientSocket удобнее и более функциональны, но взялась за Tcpclient-Tcpserver - посмотрим!

Цитата

Событие OnAccept, на сколько я понял происходит только при подключении клиента.


да, это так.. не очень удобно, но делаю все необходимые операции при одном соединении, т.е. все в обработчике OnAccept. Вроде работает smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.