Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

Как правильно использовать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
15-1190556185
Суслик
2007-09-23 18:03
2007.10.21
Функциональные языки


2-1191129184
SveTTT
2007-09-30 09:13
2007.10.21
стирание последнего символа


2-1190871484
Mery
2007-09-27 09:38
2007.10.21
Формат даты


2-1190723682
smak
2007-09-25 16:34
2007.10.21
Как заставить прогу реагировать на события при обр. запроса


15-1190123382
Альберт_
2007-09-18 17:49
2007.10.21
какой размер минимального activex ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский