Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
2-1190789736
l_v
2007-09-26 10:55
2007.10.21
ServerSocket


15-1190382560
мастерПакость
2007-09-21 17:49
2007.10.21
проблемы с HTML


2-1190806117
F@T@L_Err0r
2007-09-26 15:28
2007.10.21
Связка


11-1160470373
Grademax
2006-10-10 12:52
2007.10.21
Как в KOL (без MCK) создать глобальную горячую клавишу


3-1181827882
hprx
2007-06-14 17:31
2007.10.21
Копирование данных




   Наверх