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

Вниз

Как узнать, от какого клиента пришли данные в TServerSocket ? (+)   Найти похожие ветки 

 
Виноградов Алексей   (2003-09-25 20:54) [0]

Разъясните, пожалуйста, вот что.
У меня есть сервер на TServerSocket. NonBlocking. Ясное дело, с ним одновременно могут работать несколько клиентов. Допустим, программа такая: i-й клиент посылает серверу строчку символов, сервер отвечает ему "Hi". Так вот, у меня вопрос - как узнать, какой конкретно клиент послал строчку и кому отвечать, то есть, как узнать номер элемента в массивe CONNECTIONS (как узнать значение переменной "i"):

Сmd_Socket.Socket.connections[ i ].sendtext("Hi Have a nice day !" + #13 + #10);

Большое спасибо за помощь!

С уважением, Виноградов Алексей


 
Tommy   (2003-09-25 22:39) [1]

у меня в практике была такая ситуация.... поступила так... не знаю правда насколько это правильно....
каждый раз когда кто-нибудь коннектится я сопоставляю порядковый номер его коннекта его IP адресу в одном массиве и потом отискиваю его connection number по его IP...


 
Digitman   (2003-09-26 08:03) [2]

Когда возникает событие OnClientRead(), то вторым параметром процедуры его обработки передается ссылка на объект Socket: TServerClientWinSocket. Этот объект ассоциирован именно с тем клиентом, пришедщие данные от которого возбудили в данный момент данное событие.

Достаточно запомнить ссылку на этот объект где-то вне процедуры обработки (в некой переменной SavedSocket: TCustomWinSocket), и в момент необходимости передачи данному клиенту инф-ции нужно просто вызвать метод SavedSocket.SendЧтоТо() ... и всех делов)



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

Форум: "Сети";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.009 c
9-65686
cyborg
2003-05-14 12:09
2003.11.20
Оптимальная сортировка объектов для вывода на экран


1-65873
Newman
2003-11-02 16:03
2003.11.20
Как удалить


1-65901
mc_duck
2003-11-08 15:37
2003.11.20
Наследник TComponent.


3-65699
Gawk
2003-10-30 10:12
2003.11.20
Вопрос по FreeReport


14-66061
E1
2003-10-29 16:00
2003.11.20
Самое страшное место на Земле!!! =





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский