Вопрос по С++

Cris

Member
уже какбе ненадо, - инет великая сила, только надо научиться ею пользоваться)
 

Cris

Member
появился еше один вопросик:
я написал себе чат-сервер, в нем 1 поток создаеться на конекты, один на то что я ввожу на серве, и по 1 на каждый конект - на прием данных, так вот как можно зделать две программы - сам сервер и Auth сервер, которій будет ловить коннект, имееться ввиду я буду запускать их отдельно независимо друг от друга, но они должни использовать одни данные, ну или хотябы auth сервер должен передать все данные основному серве, но не через базы данных или файлы...

кто что подскажит
 
Останнє редагування:

dreamer

Member
появился еше один вопросик:
я написал себе чат-сервер, в нем 1 поток создаеться на конекты, один на то что я ввожу на серве, и по 1 на каждый конект - на прием данных, так вот как можно зделать две программы - сам сервер и Auth сервер, которій будет ловить коннект, имееться ввиду я буду запускать их отдельно независимо друг от друга, но они должни использовать одни данные, ну или хотябы auth сервер должен передать все данные основному серве, но не через базы данных или файлы...

кто что подскажит
Ты бы обьяснил зачем тебе это надо, тогда посоветовали бы чего умного.
А так межпроцессное взаимодействие хорошо делается через все те же сокеты.
 

Cris

Member
Ты бы обьяснил зачем тебе это надо, тогда посоветовали бы чего умного.
А так межпроцессное взаимодействие хорошо делается через все те же сокеты.
а поподробней?

вобшето я сейчас учу С++, и затронул тему сокетов, потоков, баз даных - то что часто(наверно) применяеться на практике, и для изучения написал консольный чат-сервер и клиент к нему, взаимодействие до 1000 юзеров в онлайне, хто в онлайне и месаги сохраняю в базе, месаги - как лог,

и вотя знаю что допустим для сервером MMORPG делают так:
1 сервер для конектов - аутентификации, а второй - сам гейм сервер, так вот и я в своей програме хочю разделить свой сервер - на тот что будет принимать конекты, а другой чисто для обмена сообщениями)
 

NiCketT

Member
вобшето я сейчас учу С++, и затронул тему сокетов, потоков, баз даных - то что часто(наверно) применяеться на практике, и для изучения написал консольный чат-сервер и клиент к нему, взаимодействие до 1000 юзеров в онлайне, хто в онлайне и месаги сохраняю в базе, месаги - как лог
)
Тоже писал такую штуку, только через UDP-сокет. Так проще - ненадо обрабатывать подключения и создавать новые потоки ;)
P.S. Вижу ты серьзно решил занятся программированием? Похвально. Так держать! Продолжай в том же духе!! :chef:
 

dreamer

Member
а поподробней?

вобшето я сейчас учу С++, и затронул тему сокетов, потоков, баз даных - то что часто(наверно) применяеться на практике, и для изучения написал консольный чат-сервер и клиент к нему, взаимодействие до 1000 юзеров в онлайне, хто в онлайне и месаги сохраняю в базе, месаги - как лог,

и вотя знаю что допустим для сервером MMORPG делают так:
1 сервер для конектов - аутентификации, а второй - сам гейм сервер, так вот и я в своей програме хочю разделить свой сервер - на тот что будет принимать конекты, а другой чисто для обмена сообщениями)
Ну обмен данными между клиентом и сервером у тебя идет через сокеты, вот точно так же можно реализовать обмен данными между процессами (поскольку клиент и сервер и так запущены как процессы).

Мессаги в базе хранить глупо, еще в файл для лога скидывать куда ни шло... Чат сервер просто должен транслировать приходящие сообщения всем учасникам.
Не знаю зачем в MMORPG несколько серверов, но для реализации отдельного сервера аутентификации я бы сделал так: сервер аутентифицирует юзеров и ложит в базу соотв. запись, потом указывает клиенту к какому серверу чата подключатся, сервер чата после подключения лезет в базу и ищет запись об аутентификации.
Хотя зачем это надо? :)

Кстати – дай ссылку на материал, где пишут что там несколько серверов для разных нужд.
 

Cris

Member
Ну обмен данными между клиентом и сервером у тебя идет через сокеты, вот точно так же можно реализовать обмен данными между процессами (поскольку клиент и сервер и так запущены как процессы).

Мессаги в базе хранить глупо, еще в файл для лога скидывать куда ни шло... Чат сервер просто должен транслировать приходящие сообщения всем учасникам.
Не знаю зачем в MMORPG несколько серверов, но для реализации отдельного сервера аутентификации я бы сделал так: сервер аутентифицирует юзеров и ложит в базу соотв. запись, потом указывает клиенту к какому серверу чата подключатся, сервер чата после подключения лезет в базу и ищет запись об аутентификации.
Хотя зачем это надо? :)

Кстати – дай ссылку на материал, где пишут что там несколько серверов для разных нужд.
1-е хранить месаги в базе - для учебы))
2-е как записать в базу идентификатор сокета и его данные?? чтоб потом сервер мог их считать, так как сокет открываеться при аутентификации, и как перенаправить клиентпотом с ауз на основу?
3-е я такое встречал везде, а особенно во сервах вовы и ла2, хоть на С++ хоть на Яве, везде есть 2 файлика - 1-й ауз сервер, 2-й гейм сервер
 

dreamer

Member
как записать в базу идентификатор сокета и его данные?? чтоб потом сервер мог их считать, так как сокет открываеться при аутентификации, и как перенаправить клиентпотом с ауз на основу?
Не надо записывать сокет в базу, сокет открывается между двумя потоками и передавать их проблематично.
В базу записывай пометку об аутентификации, например (IP, login) вошедшего юзера. А потом передавай юзеру адрес:порт подключения к основному серверу. Юзер отключается от этого сервера и соединяется с основным, который по базе проыеряет авторизировался ли этот пользователь.
 

Cris

Member
Не надо записывать сокет в базу, сокет открывается между двумя потоками и передавать их проблематично.
В базу записывай пометку об аутентификации, например (IP, login) вошедшего юзера. А потом передавай юзеру адрес:порт подключения к основному серверу. Юзер отключается от этого сервера и соединяется с основным, который по базе проыеряет авторизировался ли этот пользователь.
ну да впринципи так и есть, ауз сервер служит для того чтоб конект был на один какбы сервер, а выбрать можнобыло несколько)

проше оставить так как есть)

кста что посоветуеш, я щас в 11 класе, но в перед 11 и в 11 хочю по программированию зделать какойто проект для защиты в МАН(мала академия наук), но идее нема, говори практически все что угодно, тема проекта должна быть нужная комуто, чтоб небило много аналогов, и что б был вполне реален в реализации
 
Останнє редагування:

Nota

http://justech.fd - user
ну да впринципи так и есть, ауз сервер служит для того чтоб конект был на один какбы сервер, а выбрать можнобыло несколько)

проше оставить так как есть)

кста что посоветуеш, я щас в 11 класе, но в перед 11 и в 11 хочю по программированию зделать какойто проект для защиты в МАН(мала академия наук), но идее нема, говори практически все что угодно, тема проекта должна быть нужная комуто, чтоб небило много аналогов, и что б был вполне реален в реализации
ты в 11-ом?? не смеши =))
 
Зверху