|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.10.2014, 09:55 | #11 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
т.е. "немного больше памяти" - это.... 255*255*255*255*65535 = 277102632960000 байт, да? Т.е. я беру 255 терабайт и проблема решается за О(1)? - шикарно!!! еще Ipv6 может однажды появиться... Последний раз редактировалось rrrFer; 11.10.2014 в 09:59. |
|
11.10.2014, 10:04 | #12 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Цитата:
Вы замените одни данные (ip, port) другими (идентификатором) - в чем (по вашему) будет разница? Далее, откуда вообще берется этот идентификатор? Вот подключилось новое соединение - как вы поймете кто это? |
|
11.10.2014, 11:10 | #13 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
забыл отписаться - выстрелил себе в ногу (со своим супер-алгоритмом), а точнее уронил на неё кирпич
Последний раз редактировалось .AJIADb9; 11.10.2014 в 11:14. |
11.10.2014, 11:11 | #14 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
он выдаст мне логин/пароль я скажу: ага, это чувак с id==#
|
11.10.2014, 11:12 | #15 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
|
11.10.2014, 11:16 | #16 | |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
Цитата:
ибо важно, кто прислал мне сообщение. Каждый пользователь - объект, соотв-но пришедшее сообщение нужно обработать и изменить этот объект каким-либо образом. При подключении нового пользователя: в массив объектов-пользователей (std::map) добавляется ещё один элемент. Надеюсь я верно понял логику? Последний раз редактировалось .AJIADb9; 11.10.2014 в 11:21. |
|
11.10.2014, 13:04 | #17 |
Пользователь
Регистрация: 10.10.2014
Сообщений: 12
|
Получается, в качестве key type - sockaddr_in client_addr, а в качестве data type - class Users?(ну, например)
|
11.10.2014, 13:10 | #18 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Каждое его подключение будет приходить с разных портов а возможно и с разных IP адресов, так что при каждом подключении нужно будет проверять логин и пароль. После каждого логина добавляем пару сокет/объект в мап. Не забывайте только удалять при завершении сессии.
Все сказанное относится к TCP протоколу. Для UDP придется придумывать схему посложнее и действительно придется мапить PORT:IP к объекту но сути дела это не меняет. Для TCP легче и надежнее сделать std::map<socket, object*> Да, можно сделать и std::map<sockaddr_in, object*> но для TCP это лишнее |
11.10.2014, 14:12 | #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 |