![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
т.е. "немного больше памяти" - это.... 255*255*255*255*65535 = 277102632960000 байт, да? Т.е. я беру 255 терабайт и проблема решается за О(1)? - шикарно!!! еще Ipv6 может однажды появиться... Последний раз редактировалось rrrFer; 11.10.2014 в 09:59. |
|
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]() Цитата:
Вы замените одни данные (ip, port) другими (идентификатором) - в чем (по вашему) будет разница? Далее, откуда вообще берется этот идентификатор? Вот подключилось новое соединение - как вы поймете кто это? |
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]()
забыл отписаться - выстрелил себе в ногу (со своим супер-алгоритмом), а точнее уронил на неё кирпич
Последний раз редактировалось .AJIADb9; 11.10.2014 в 11:14. |
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]()
он выдаст мне логин/пароль я скажу: ага, это чувак с id==#
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]() |
![]() |
![]() |
![]() |
#16 | |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]() Цитата:
ибо важно, кто прислал мне сообщение. Каждый пользователь - объект, соотв-но пришедшее сообщение нужно обработать и изменить этот объект каким-либо образом. При подключении нового пользователя: в массив объектов-пользователей (std::map) добавляется ещё один элемент. Надеюсь я верно понял логику? ![]() Последний раз редактировалось .AJIADb9; 11.10.2014 в 11:21. |
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]()
Получается, в качестве key type - sockaddr_in client_addr, а в качестве data type - class Users?(ну, например)
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Каждое его подключение будет приходить с разных портов а возможно и с разных IP адресов, так что при каждом подключении нужно будет проверять логин и пароль. После каждого логина добавляем пару сокет/объект в мап. Не забывайте только удалять при завершении сессии.
Все сказанное относится к TCP протоколу. Для UDP придется придумывать схему посложнее и действительно придется мапить PORT:IP к объекту но сути дела это не меняет. Для TCP легче и надежнее сделать std::map<socket, object*> Да, можно сделать и std::map<sockaddr_in, object*> но для TCP это лишнее |
![]() |
![]() |
![]() |
#19 | |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
![]() Цитата:
Первую часть вопроса я частично продумал меня интересует только "середина", как быстрее найти того юзверя, который стучится под определённым PORT:IP. Тоесть мапить PORT:IP - не бред? Спасибо, так и поступлю =) Если есть всё-таки что-то рациональнее мапинга PORT:IP, можете предложить? Последний раз редактировалось .AJIADb9; 11.10.2014 в 14:17. Причина: давно продумал - > частично продумал |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
База клиентов | Eangwar | Свободное общение | 1 | 17.05.2013 22:48 |
TServerSocket - количество клиентов | Don Karleone | Работа с сетью в Delphi | 10 | 15.02.2012 00:43 |
Идентификация клиентов TClientSockets | ArtGrek | Работа с сетью в Delphi | 2 | 28.02.2011 13:36 |
Запрос активных клиентов | mavlon_m | SQL, базы данных | 4 | 23.02.2011 11:13 |