Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Как правильно использовать TServerSocket?   Найти похожие ветки 

 
alles ©   (2007-09-25 16:41) [0]

Добрый день.
Задачя состоит в том что при каждом коннекте клиента создавался новый TServerClientThread где будем читать только данные отправленные этого клиента а не другого. Эти данные будут обрабатыватся и потом послать ему (клиенту) обратно ответ.
Как правильно использовать компонент TServerSocket в этом случай.Какое значение в поле ServerType у ServerSocket-a должна быть? А у клиента в поле ClientType?
Спасибо


 
Сергей М. ©   (2007-09-25 16:50) [1]


> Какое значение в поле ServerType у ServerSocket-a должна
> быть?


stThreadBlocking


> А у клиента в поле ClientType?


По барабану какое. На работу сервера это никак не повлияет.


> Как правильно использовать компонент TServerSocket в этом
> случай


Обрабатывай событе OnGetThread, где создавай собственный транспортный поток - наследник TServerClientThread с перекрытым методом ClientExecute, в теле которого работай с удаленным клиентом посредством объекта, представленного св-вом TServerClientThread.ClientSocket.

Традиционный шаблон обработчика ClientExecute:

while not Terminated and ClientSocket.Connected do begin
..
end;


События OnClientRead, OnClientWrite в режиме stThreadBlocking не возбуждаются, забудь про них.


 
alles ©   (2007-09-25 16:55) [2]

Сергей а надо использовать в этом потоке TWinSocketStream (нашел в инете) или можно сюда использовать пример из делфи:

.......
while ClientSocket.ReceiveLength > 0 do
Buffer:=AllocMem(ClientSocket.ReceiveLength);

.......



 
Сергей М. ©   (2007-09-25 17:03) [3]


> а надо использовать в этом потоке TWinSocketStream (нашел
> в инете)


Использовать этот класс можно , но необязательно.


> или можно сюда использовать пример из делфи


Плохой пример. Использовать его как альтернативу настоятельно не рекомендую.


 
Dmitro ©   (2007-09-26 00:27) [4]

А чем TServersocket.Socket.ActiveConnections[i] не устраивает?


 
Сергей М. ©   (2007-09-26 08:18) [5]


> чем TServersocket.Socket.ActiveConnections[i] не устраивает?


А он-то здесь с какого боку ?


 
Сергей М. ©   (2007-09-26 08:32) [6]


> События OnClientRead, OnClientWrite в режиме stThreadBlocking
> не возбуждаются, забудь про них


Точнее было бы сказать так - эти события не автоматически возбуждаются, если перекрыть ClientExecute.

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


 
Сергей М. ©   (2007-09-26 08:46) [7]


> эти события не автоматически возбуждаются, если


эти события автоматически не возбуждаются, если



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
2-1190724118
alles
2007-09-25 16:41
2007.10.21
Как правильно использовать TServerSocket?


2-1191153487
denissoft
2007-09-30 15:58
2007.10.21
что такое {$I Rz30Ctls_Dsgn_Contains.inc} - ???


15-1190403271
korneley
2007-09-21 23:34
2007.10.21
Отсутствуют "Последние 10 сообщений на форумах"


6-1171884932
inex
2007-02-19 14:35
2007.10.21
сетевой файловый менеджер


1-1186143811
race1
2007-08-03 16:23
2007.10.21
"Освобождение структуры"