Как создать простейший клиент-сервер?

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Agiliter
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46

Как создать простейший клиент-сервер?

Сообщение Agiliter »

Добрый день! Я пытаюсь разобраться как можно реализовать клиент-серверное приложение. Потому и придумал такую простую задачу, без использования БД и сложных алгоритмов. Допустим, нужно построить простой клиент-сервер. Пользователь в клиенте вводит число А, клиент должен передать это число A на сервер, где вычисляется сумма числа А с хранящимся на сервере числом В. Сервер возвращает клиенту сумму С = А+В. Возникает два вопроса: 1. как это реализовать и 2. какие средства разработки использовать?

Я знаю c++, но не работал с сетями. Знаком с as3 и php. Как я понимаю решение. Клиентскую часть нужно написать на as3. Клиент (as3) каким-то образом (я не понял каким) отправляет php запрос на сервер. Серверная часть пишется на c++. Сервер получает число А от клиента, складывает его с заданным числом В и отправляет запрос к клиенту. Или я не прав? Кто-нибудь может расписать мне все части? В самом общем виде, конечно же. Я пытаюсь понять логику и собственно реализацию.

Дополнительно, что касается реализации. Клиент запускается только тогда, когда его запускает пользователь (например, открывает web-страничку или запускает флэшку), а сервер? Серверная часть может быть расположена на арендованном хостинге и что, она должны быть всё время включена? Сервер запускается и круглосуточно ждет запросов от клиента?
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Как создать простейший клиент-сервер?

Сообщение sasha^ »

Добрый день! Я пытаюсь разобраться как можно реализовать клиент-серверное приложение. Потому и придумал такую простую задачу, без использования БД и сложных алгоритмов. Допустим, нужно построить простой клиент-сервер. Пользователь в клиенте вводит число А, клиент должен передать это число A на сервер, где вычисляется сумма числа А с хранящимся на сервере числом В. Сервер возвращает клиенту сумму С = А+В. Возникает два вопроса: 1. как это реализовать и 2. какие средства разработки использовать?
если без бд - то это не может быть php.. это должен быть сокет-сервер(для онлайн игр), средства написания - java,c#,c++,c и пр... хотя php и поддерживает сокеты, но писать на нем сервер - нужно быть идиотом))
я писал урок на эту тему(чат на java и as3 без бд) - http://flapps.ru/forum/topic7181.html
Я знаю c++, но не работал с сетями. Знаком с as3 и php. Как я понимаю решение. Клиентскую часть нужно написать на as3. Клиент (as3) каким-то образом (я не понял каким) отправляет php запрос на сервер. Серверная часть пишется на c++. Сервер получает число А от клиента, складывает его с заданным числом В и отправляет запрос к клиенту. Или я не прав? Кто-нибудь может расписать мне все части? В самом общем виде, конечно же. Я пытаюсь понять логику и собственно реализацию.
да, клиент на as3. есть два варианта сервера(для игр) - сокет-сервер и обычный(http).
сокет-сервер сложнее, но при большом обмене данных - быстрее намного + пинг во много раз меньше, а если игра шутер или динамическая - без него не обойтись. http-сервер - обычный сервер на php(можно и других языках, но почти всегда php) который отсылает ответ на запрос клиенту..
отличие сокет-сервера - он работает всегда, и может не только клиент посылать запросы - но и сервер.. также есть такое как сохранение данных в оперативной памяти сервера, без бд. с php так не сделать(нужно в бд, файлах и пр. хранить).
без бд будет так(сокеты):
1) клиент запустился
2) соединился с сервером
3) послал запрос
4) сервер прислал ответ
Дополнительно, что касается реализации. Клиент запускается только тогда, когда его запускает пользователь (например, открывает web-страничку или запускает флэшку), а сервер? Серверная часть может быть расположена на арендованном хостинге и что, она должны быть всё время включена? Сервер запускается и круглосуточно ждет запросов от клиента?
сокет-сервер запускается когда вы запустите его)) сокет-серверу нужен vps или выделенный сервер. запущен он круглосуточно и ожидает подключения от клиентов(flash,as3)
вся суть сокет-сервера - он запущен постоянно, ждет соединения, потом общается с клиентом когда захочет, пока тот не отсоединиться. может хранить данные в переменных(оперативная память), одновременно работать с многими клиентами, т.е. подождать пока, например, все пришлют числа и потом сложить и выдать всем сумму и т.д.
cibersant
Сообщения: 199
Зарегистрирован: 23 окт 2011, 18:34

Re: Как создать простейший клиент-сервер?

Сообщение cibersant »

Какая разница,что на чём писать.Сервер можно написать на чём хочешь,так же как и клиент.Вопрос для чего тебе это нужно.
1.Задай себе вопрос что ты хочешь конкретно.
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Как создать простейший клиент-сервер?

Сообщение sasha^ »

Какая разница,что на чём писать.Сервер можно написать на чём хочешь,так же как и клиент.Вопрос для чего тебе это нужно.
1.Задай себе вопрос что ты хочешь конкретно.
тс походу новичек. он и сам не знает чего хочет :)
потому я так и объяснил.

PS. сокет-сервера - сложная штука, намного легче php...
Agiliter
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46

Re: Как создать простейший клиент-сервер?

Сообщение Agiliter »

sasha^ писал(а):тс походу новичек. он и сам не знает чего хочет :)
потому я так и объяснил.
Спасибо) То, что нужно. Самую суть написали. Вы правы, я новичок. Обычные приложения писал нормально (игры и на c++, и на java, и на as3), а вот когда решил сделать многопользовательскую онлайн-игру, то растерялся. Не знаю толком с чего начать.
cibersant писал(а):1.Задай себе вопрос что ты хочешь конкретно.
Хочу создать клиент-серверное приложение (RPG-игру). Алгоритмы, механика игры, геймплей и клиентская часть продуманы, наброски сделаны. А вот как это дело с сервером состыковать не понял. Суть такая: Пользователь взаимодействует с игрой через клиентскую часть (флэшка на as3), клиент посылает запрос на сервер, сервер проводит вычисления, беря при этом данные с БД (которая тоже на сервере), и присылает клиенту результат вычислений и инструкции о том, что показывать пользователю. Как-то так. А вот как реализовать..
В примере написал, что без БД, потому что мне показалось это не существенным. (С БД же работает серверная часть программы, а там по идее ничего сверхестественного) Сложность для меня, как я представляю, именно в написании сервера и организации "общения" между клиентом и сервером. Тут вопрос остается открытым..((
cibersant
Сообщения: 199
Зарегистрирован: 23 окт 2011, 18:34

Re: Как создать простейший клиент-сервер?

Сообщение cibersant »

Проблема в том,что если ты сам начнёшь сервер писать,то как ты сможешь его оттестировать?
Лучше взять готовые решения и допилить.
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Как создать простейший клиент-сервер?

Сообщение sasha^ »

Хочу создать клиент-серверное приложение (RPG-игру). Алгоритмы, механика игры, геймплей и клиентская часть продуманы, наброски сделаны. А вот как это дело с сервером состыковать не понял. Суть такая: Пользователь взаимодействует с игрой через клиентскую часть (флэшка на as3), клиент посылает запрос на сервер, сервер проводит вычисления, беря при этом данные с БД (которая тоже на сервере), и присылает клиенту результат вычислений и инструкции о том, что показывать пользователю. Как-то так. А вот как реализовать..
В примере написал, что без БД, потому что мне показалось это не существенным. (С БД же работает серверная часть программы, а там по идее ничего сверхестественного) Сложность для меня, как я представляю, именно в написании сервера и организации "общения" между клиентом и сервером. Тут вопрос остается открытым..((
это самое сложное то что может быть - онлайн игра))) нужно очень много времени потратить и сил на понимание и реализацию всего.. общения происходит исключительно так, как продумано, конкретно в каждом случае все разное.. могу посоветовать почитать статьи на эту тему..
http://www.ant-karlov.ru/PlayerIO-reshe ... rzhek.html - сам читал, интересно и ясно описаны основы.. остальное познавать нужно самому.. + скажу что очень мало книг и т.д. по этому делу, потому-что людей, занимающихся этим и учащихся мало, потому и невыгодно.. также мало кто делится успешными секретами))
cibersant
Сообщения: 199
Зарегистрирован: 23 окт 2011, 18:34

Re: Как создать простейший клиент-сервер?

Сообщение cibersant »

Ну проблема с сервером,мы в своё время писали сервер,всё учтено,всё норм,но при нагрузке такое выдавал,жуть.
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Как создать простейший клиент-сервер?

Сообщение sasha^ »

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

ps. хотя я чат, на который давал ссылку выше, написал через 2 недели после "обучения".. но нужно учесть что я знал и то и то неплохо., хотя с сокетами раньше не работал..

pss. сейчас делаю сайты, т.к. считаю более прибыльным. хорошую ммо игру самому не сделать©
Agiliter
Сообщения: 112
Зарегистрирован: 01 фев 2014, 13:46

Re: Как создать простейший клиент-сервер?

Сообщение Agiliter »

cibersant писал(а):Проблема в том,что если ты сам начнёшь сервер писать,то как ты сможешь его оттестировать?
Я об это думал. Дешевый (100-150 р в месяц) виртуальный хостинг подойдет для этих целей?
cibersant писал(а):Лучше взять готовые решения и допилить.
Где их взять-то..

Плюс у меня возник другой вопрос. Если взять простенькую многопользовательскую онлайн игру, что-то вроде пошагового файтинга (Все пользователи в одной БД на сервере, а бои проходят 1х1 или 2х2, каждый пользователь может покупать броню и оружие, но и только). Для этого нужен клиент-сервер с БД. Клиент хочу написать на as3 (для соц сетей) - это однозначно, а сервер с БД на чем писать? php? Товарищ выше его ругал. А если php годится, то что мне нужно изучать для этого? Какие инструменты и языки? Как я мыслю, as3, php и MySQL, ну и дэнвер для мелких тестов. Этого хватит?
Ответить