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

Вниз

TServerSocket   Найти похожие ветки 

 
MiHoY   (2006-04-06 10:01) [0]

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

но тут возникает такая загвоздка: пользователей будет очень много и простым запросом типа эй это ты с таким ID на этом соедениении не прокатит. а также имеет место простое отключение пользователей от сервера => запоминать нак номер тоже не катит


 
Сергей М. ©   (2006-04-06 10:11) [1]

Каждое соединение уникально идентифицируется по комбинации свойств RemoteAddr+RemotePort, эту комбинацию (а не номер соединения) и следует использовать для решения задачи.


 
MiHoY   (2006-04-06 11:49) [2]

пример можно
а то не догоняю малость


 
Сергей М. ©   (2006-04-06 12:15) [3]


> не догоняю малость


Что конкретно ?


 
MiHoY   (2006-04-06 12:17) [4]


> по комбинации свойств RemoteAddr+RemotePort

на эту часть


 
Сергей М. ©   (2006-04-06 12:59) [5]

Это свойства объекта TCustomWinSocket.

Того самого, который передается тебе 2-м параметром в обработчик события, например, OnClientConnect


 
MiHoY   (2006-04-06 13:07) [6]

да это знаю я
ты можешь пример использования дать


 
Сергей М. ©   (2006-04-06 13:25) [7]

Зачем пример-то, если знаешь ?

Все ж просто - когда тебе нужно отправить сообщение клиенту с таким-то требуемым адресом/портом перебираешь в цикле список Connections и для каждого элемента сравниваешь его RemoteAddress и RemotePort с искомыми.


 
MiHoY   (2006-04-06 13:27) [8]

а если их 1000000 то что?


 
Сергей М. ©   (2006-04-06 13:38) [9]


> то что?


То тоже самое.

Хотя иметь 1000000 одновременно активных клиентов твоему серверу вряд ли удастся, особенно если работает он не под управлением серверной ОС.

Только при таких условиях целесообразней будет вести собственный упорядоченный список записей с адресами, портами и ссылками на соотв.объекты, дабы осуществлять поиск в нем не банальным перебором, а с помощью любого высокоэффективного алгоритма поиска данных в упорядоченном списке. Внесение записи в список осуществляй при событии OnClientConnect, удаление - при OnClientDisconnect.



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

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

Наверх





Память: 0.46 MB
Время: 0.014 c
1-1142103774
Fenix
2006-03-11 22:02
2006.04.23
Подсветка синтаксиса в RichEdit


15-1143703380
azl
2006-03-30 11:23
2006.04.23
Delphi 2006


2-1144357771
Std
2006-04-07 01:09
2006.04.23
динамический массив


3-1141371911
DancerMan
2006-03-03 10:45
2006.04.23
*.dbf => функция смены кодировки => отобразить в гриде ?


15-1144042354
Ega23
2006-04-03 09:32
2006.04.23
С Днём рождения! 1 апреля





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