Главная страница
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.014 c
15-1190694401
DelphiN!
2007-09-25 08:26
2007.10.21
Резрешить под пользователем SYSTEM запуск от имени ...


1-1186549318
lecavalie
2007-08-08 09:01
2007.10.21
Подскажите плз. Delphi + Web/wap интерфейс


2-1190481611
Yogan
2007-09-22 21:20
2007.10.21
idsmtpserver


15-1190273650
Azize
2007-09-20 11:34
2007.10.21
Посоветуйте книгу


15-1190519762
Карп
2007-09-23 07:56
2007.10.21
консоль