Автор Тема: Информация по созданию php-сервера к C++-клиенту (UDP-протокол)  (Прочитано 12962 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Demius

  • Гость
Сабж. Кто-нибудь знает где? Только не в магазинах. Какие-нибудь электроннные книги, хелпы и т.д.
« Последнее редактирование: ёоЫм 16, 2006, 03:43:39 am от Demius »

Оффлайн Snake

  • Титулярный советник
  • ****
  • Сообщений: 186
  • Репутация: 1
  • Пол: Мужской
(то ли я тупой, то ли...?!) поясни смысл вопроса...
«Жизнь - это игра, в которой нет Options'а и читов.»  Программист.

Demius

  • Гость
Извини, если выразился туманно. Хочу сделать некие С++ клиент, и php-сервер сообщение от этих клиентов обрабатывающий. Понял, что всё это пишется с помощью сокетов. Минимально необходимую информацию для написания С++ клиента нашел, а вот с php проблема.

Оффлайн pashok

  • Титулярный советник
  • ****
  • Сообщений: 118
  • Репутация: 1
 - если тебе просто нужна документация по php, то ее можно найти на этом сайте,
 - если ты просто не знаешь как все это оформить, могу посоветовать: пиши клиента который будет посылать запросы через сервис http, тогда все будет просто: посылаешь запрос по адресу, например 'http://www.my.ru/server.php?id=1' + POST данные, а скрипт server.php выводит необходимую информацию

Dmitry_Maksimov

  • Гость
Решение простое... :) я с такими вещами уже год работаю, но вот в последнее время решить не могу трабл. Как эти пост данные в php получить в исходной форме без разбивки на переменные?

Dmitry_Maksimov

  • Гость
Кстати, если пишешь с MFC, то могу посоветовать класс CInternetSession (там функция OpenURL). А если просто API, то функции с префиксом Internet (к примеру InternetOpen() но с этими вопросами лучше на C++ раздел лезть).

Demius

  • Гость
Открою карты. Хочу написать on-line игру, понимаю дело непростое, но мне оно интересно прежде всего с целью получения опыта. Сейчас вот DirectX изучаю. Хотелось бы узнать на чем пишутся к этому делу серваки. И если на php, что желательно, так как хотелось бы хоть через года 2, но выставить на рабочее обозрение минимально работающуу версию, то где по этому поводу искать информацию...

Оффлайн LEON

  • Действительный статский советник
  • *****
  • Сообщений: 1557
  • Репутация: 0
  • Пол: Мужской
  • Котята Геринга
B зачем для сервера пхп? Это занятие сродни онанизму.
Что мешает сервер написать на том же Си?
Йа помню что дал мальчугану конфету в которой в начинке был кал...

Demius

  • Гость
Где мне найти хост, на который можно положить мой С++ сервер, желательно не за 200$/мес?

Dmitry_Maksimov

  • Гость
Я считаю что с пхп - самый раз!!! (Пожалуйста про анан..м не здесь, а где нить там на порно сайтах :) ) Объясняется тем, что для пхп тоже есть много всякого (теже самые базы данных), да и большинство серваков ориентированны на пхп. А ананир...ть так уж если производить аутентификацию TLS с помощью сокетов :-D (хотя посредством пхп и апача никаких проблем), а работа со строками, так на пхп никаких проблем не вызовет (тьма функций), да и еще полно всякого чего можно накопать и отрыть. Не надо останавливаться на С, не спорю, очень мощный язык, но стоит пробовать более высокий уровень... (к примеру, как будет выглядеть дизайнер 3D разрабатывающий объекты расписывая их в С :-D ).

Dmitry_Maksimov

  • Гость
Вообще, если надо, то могу пару примеров скинуть на передачу данных скрипту из программы написаной с использованием MFC (или на API, но там чуть писанины больше). И еще пару примеров серверного скрипта по приему данных, обработке и возврату результата.
P.S. Тут конечно можно поспорить о том, что при использовании сокетов сервак может слать запросы и немедленно получать ответы, но я считаю что это не тот случай, здесь можно сделать по опросу на новые данные с сервака.

Demius

  • Гость
Вообще, если надо, то могу пару примеров скинуть на передачу данных скрипту из программы написаной с использованием MFC (или на API, но там чуть писанины больше). И еще пару примеров серверного скрипта по приему данных, обработке и возврату результата.
P.S. Тут конечно можно поспорить о том, что при использовании сокетов сервак может слать запросы и немедленно получать ответы, но я считаю что это не тот случай, здесь можно сделать по опросу на новые данные с сервака.
Не самая интересная для меня ситуация, но терпимая, буду признателен, если скинешь. Желательно и на API, и MFC.

Оффлайн LEON

  • Действительный статский советник
  • *****
  • Сообщений: 1557
  • Репутация: 0
  • Пол: Мужской
  • Котята Геринга
Дмитрий, для пхп есть много всякого это не утверждение. Базы данных они придумаваются не для пхп а для других целей. В пхп же (сейчас не знаю, врать не буду) не было даже ООП, это вообще языком программирования сложно назвать. Да и задачи разные сервер для много пользовательской онлайн игры писанный на пхп это именно онанизм по другому это никак назвать нельзя.

Demius, а в чем проблема тебе в любом случае придется брать свой сервер а не просто хостинг. А тут уже несколько вариантов: виртуальный выделенный сервер, аренда сервера, co-location. Вот цены на аренду сервера: http://masterhost.ru/service/rent/
Это твой собственный сервер будет, что хочешь туда ставить то и ставь. И никой http тут не нужен нужен только доступ по TCP протоколу и открытый порт на сервере. Все прекрасно реализуется с помощью сокетов.

« Последнее редактирование: °ТУгбв 26, 2006, 08:19:19 pm от LEON »
Йа помню что дал мальчугану конфету в которой в начинке был кал...

Dmitry_Maksimov

  • Гость
Наверно должен соглазится с тем, что пхп не язык программирования. По поводу сокетов..
Хочу сказать что мною писано много сетевых приложений (должен признать, что больше всего для нуждающихся студентов :) ), основной проблемой вставала синхронизация... (там есть пара геморойных вопросов). И еще один момент в НАДЕЖНОСТИ (и это наверное самый главный критерий) Если на пхп сервере будет пропущен один запрос, это пол беды, а если пропущен целый сокет, или все сокеты (прога глюканула) то это не совсем приятно ни для игрока ни для администратора!!! Выбирать реализацию не нам с LEON, а разработчику, именно он отвечает за надежность своего программного продукта.
P.S. В обоих версиях свои + и -, но каму как нравится.
P.P.S Примеры чуть позже (обязательно выкину хотя бы для читающих и поддержки темы)

Demius

  • Гость
Просто, проект, который пишется одним человеком, во всяком случае на начальном этапе, будет приносить очень немного денег, а мне отелось бы не очень много на это тратить, тем более что денег у меня не много...

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Полностью согласен с Леоном. Если нет нужды писать еще и сайт который будет основным средством доступа к серверу, то в PHP для сервера нету вобще никакого смысла - это именно онанизм, ну или забивание гвоздей отверткой если хотите=). PHP инструмент для вполне конкретных целей - создания сайтов. А сервер писать можно на чем нибудь боле подходящим, хотябы C/C++ или Java.
(По секрету в нашей конторе, даже если сайт является важной и неотемлимой частью серевиса, то для более мене сложного взаимодействия с клиентом-приложением, сервер я пишу всеравно на более преднозначенном для этого языке тепа Java, а общий доступ к данным уже через базу)

Единственное, не надо горячиться PHP - это всетаки язык программирования и отрицать это глупо. =)) Но язык для определенных нужд. И ООП там с 5-ой версии тоже есть.
По поводу хостинга - даже если не исспользовать свой сервер, на удаленном хостинге вполне уместно просить разрешить запускать свою программу-сервер. А хостинга с поддержкой java полно кстати. =)
« Последнее редактирование: °ТУгбв 29, 2006, 01:36:29 pm от aks »

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Не сразу заметил тут странные мысли
Хочу сказать что мною писано много сетевых приложений (должен признать, что больше всего для нуждающихся студентов :) ), основной проблемой вставала синхронизация... (там есть пара геморойных вопросов).
Вот как раз методы синхронизация очень хорошо проработанны в предложенных мной языках.

И еще один момент в НАДЕЖНОСТИ (и это наверное самый главный критерий) Если на пхп сервере будет пропущен один запрос, это пол беды, а если пропущен целый сокет, или все сокеты (прога глюканула) то это не совсем приятно ни для игрока ни для администратора!!!
А вот тут я просто неодумеваю. Как же вы писали сетевые приложения? Как понять фразу пропущенн сокет или несколько сокетов? Это же просто логический бред )) Вы вобще знаете что такое сокет и какой принцип работы у TCP сокета, да и вобще зачем нужен протокол TCP? (Про семиуровневую модель ISO OSI я уже боюсь спрашивать). Это все нужно как раз для того чтобы держать постоянный и непрерывный канал связи и вслучаее ее потери адекватно реагировать/переподключаться. Если вы не знаете HTTP запросы на веб сервер так же идут через TCP сокет. Просто это протокол более высокого уровня. Но он нужен для HTTP серверов. Для своего же сервера нужен так же свой протокол такого же уровня. =)

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Хех, почитал внимательно название темы. Автор хочет исспользовать UDP. Непонятно почему именно его, ну да ладно. В любом случает возможность каких либо HTTP запросов через UDP отсутстует, так что они отпадают сразу. Исспользовать PHP сокеты, как я говорил - изврат. для этого есть нормальные языки.
Хотя посоветовал бы забить на UDP и исспользовать TCP если будут передоваться команды игры и прочее, а не качаться мегобайты информации. Он для этого болшье подходит.

Dmitry_Maksimov

  • Гость
Про семиуровневую модель с aks разговаривать даже не собираюсь, и вообще чем поносить и цепляться за слова лучше бы человеку делом помогли!!! Ему ведь надо "определиться"... Скинули бы пару примеров серверных прог, разъяснили бы че к чему.
И вообще... понаписали тут всякого типа предложенные мною методы (будто бы вы сразу, как только тема открылась сразу заявили: "Java и точка")...
Вот как раз методы синхронизация очень хорошо проработанны в предложенных мной языках.
Я ведь вам до этого даже слова ни сказал, а вы в меня кидаетесь, нехорошо.

По поводу "пропущенные сокет" я имел ввиду разрыв соединения или ещё какие-нибудь пакостные происшествия. Кто хотел, тот понял!

И если вы так внимательно умеете читать названия тем, тот причем тут java? Если он кинеться на изучение нового языка он потеряет еще времени и понасоздает себе кучу вопросов.

И если вы, aks, пришли тут "азбуку" читать, то просьба сопровождать вашу теорию ПРАКТИКОЙ!!!
Просьба опубликовать исходные коды, уж очень мне стало интересно =)
Мне как и другим колесо воссоздавать не хочется уж очень.

P.S. БРЕД - симптом психического расстройства, проявляющийся в ложных суждениях, умозаключениях, которые имеют лишь субъективное обоснование и не поддаются коррекции.
Не знаю как Вам, но мне обидно :(

P.P.S. Это уже ради интереса +)
Недоумение, сомнение, колебание или раздумье.

Недоуметь, становиться недоумным, недоумчивым, глупеть, теряться в мыслях и в уме все более и более. Люди живут, умнеют, а мы живем, недоумеем.

Недоумный человек, слабоумый, тупоумый, недалекий, глуповатый.


Оффлайн Qwesty

  • Коллежский асессор
  • *****
  • Сообщений: 275
  • Репутация: 10
  • Пол: Мужской
  • Вечно пьяный, темный кодер.
Знаю, что сервер известной онлайн игры Lineage 2 написан на Java и C++ с использованием баз данных My/MsSQL, сервер World of Warcraft написан на C++, да и думаю сервера остальных игр тоже написаны на чем-то подобном.

Очень интересно, но мне кажется сервер на ПХП будет выглядеть очень бледно.
Пляшет небо под ногами, пахнет небо сапогами, мы идем, летим, плывем, наше имя ЛЕГИОН...

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Ему ведь надо "определиться"... Скинули бы пару примеров серверных прог, разъяснили бы че к чему.
Думаете я буду тут выкладывать исходные коды закрытых комерческих продуктов?
По программированию на Java, C, C++ и в частности программировании сетевых приложений есть огромное количество книг, примеров и исходных текстов. Могу порекомендовать литературу если надо =)
По поводу изучения - я так понял у автора есть проблеммы и с php. А Java изучать по мне куда прощще, из-за полностью объектного подхода, интуитивно понятных элементов языка и стандартных API и хорошего контроля за ошибками и выполнением кода. Да и как бы то ни было, оснавная мысль то - PHP не предназначен для этих целей. Нужно исспользовать адекватный инструмент для решения задачи.


По поводу "пропущенные сокет" я имел ввиду разрыв соединения или ещё какие-нибудь пакостные происшествия. Кто хотел, тот понял!
Вот для этого и нужен протокол TCP, чтобы вовремя отслеживать такие вещи и оперативно на них реагировать. Чтобы не было потери данных никаких.

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Хотя по поводу примеров. В разделе C/C++ есть примеры сетевого приложения и прочих типовых задач. Подумываю, может создать простейшие примерчики в разделе Java.

Dmitry_Maksimov

  • Гость
Конечно же все зависит от того, насколько реактивной должна быть игра и от типа решаемой задачаи (может есть какие-нибудь сложные алгоритмы требующие хорошее быстродействие, или же нужна защищенность канала обмена данными). Все же буду признателен появлению шаблона приложения на java с реализацией простейших функций (шаблоны не должны быть комерческой тайной, на то они и шаблоны).

Dmitry_Maksimov

  • Гость
Все же интересно узнать хотя бы о стиле или основных принципах игры (так, в двух словах) если можно.

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Конечно же все зависит от того, насколько реактивной должна быть игра и от типа решаемой задачаи (может есть какие-нибудь сложные алгоритмы требующие хорошее быстродействие, или же нужна защищенность канала обмена данными). Все же буду признателен появлению шаблона приложения на java с реализацией простейших функций (шаблоны не должны быть комерческой тайной, на то они и шаблоны).
Пример клиент серверного приложения на Java я вам могу продемонстрировать. Причем можно даже, чтоб клиент был на С++. Только вот какие еще простейшие функции вам нужны кроме подключения и последующиего чтения/записи данных с сокета? Ну хорошо можно еще расширить струку и читать не тупо данные, а заранее определенными пакетами. =)

Dmitry_Maksimov

  • Гость
Только вот какие еще простейшие функции вам нужны кроме подключения и последующиего чтения/записи данных с сокета? Ну хорошо можно еще расширить струку и читать не тупо данные, а заранее определенными пакетами. =)
Вот именно в этих структурах то и должна заключаться синхронизация... Нам не интересно просто так гонять последовательность байт, потом разбирать что к чему (кстати на пхп есть парсер, который разгребет все что принял)... Я так полагаю вы предложите написать код, который будет принимать данные НЕ фиксированной длинны (например "лента" служебной информации в виде текста), потом вы предложите написать еще какие-нибудь вспомогательные функции. А чем дело кончится? Один из вариантов - воссоздание тех же самых HTTP запросов только в ИНОЙ форме... И вообще, вроде как не Quake подобная игруха будет (или я ошибаюсь?)!
Хотя по мне так, я бы клиента на Flash писал (красивее, в модернизации и обновлении куча плюсов) если не ошибаюсь, то так и делается (примеров не приведу, играть в подобные вещи не люблю, затягивает), это я по опыту знакомых сужу 8-).

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Вот именно в этих структурах то и должна заключаться синхронизация...
Э нет, давайте отделим мух от котлет. В этих струкурах (классах) не должно заключаться никакой синхронизации. Там должны быть только данные и методы обработки\доступа к ним.
Вся синхронизация какая нужна - должна быть в обработчике сокета. Для каждого подключенного клиента скажем будет создаваться отдельный поток и общение с ним только по его сокету (а как иначе?). А вот при доступе к общим данным этими потоками и нужна синхронизация. Благо средства для этого простые есть.

Я так полагаю вы предложите написать код, который будет принимать данные НЕ фиксированной длинны (например "лента" служебной информации в виде текста), потом вы предложите написать еще какие-нибудь вспомогательные функции. А чем дело кончится? Один из вариантов - воссоздание тех же самых HTTP запросов только в ИНОЙ форме...
Ничего подобного )) Притом HTTP - протокол прикладного уровня для вполне определенных задачь - взаимодействие с веб сервером. Причем с большой кучей недостатков, которые стараются исправлять всякими приладами и ухищьрениями. Для нормального общения между клиентом и сервером он плохо подходит. Потому для своих нужд и создается всегда свой протокол того же уровня, который соответствует задаче и учитывает ее требования.

Хотя по мне так, я бы клиента на Flash писал (красивее, в модернизации и обновлении куча плюсов) если не ошибаюсь, то так и делается (примеров не приведу, играть в подобные вещи не люблю, затягивает), это я по опыту знакомых сужу 8-).
Ну да флэшь конечно хорошо. Недавно по работе пришлось столкнуться с написанием клиента на flash. Раньше никогда с ним дела не имел, но заказчик захотел небольшую приладу на flash встроенную в сайт помимо основной функциональности. =)) Пришлось изучать. С дизайнерской точки зрения flash конечно очень хорошь - туда только пусти дизайнеров и дай им волю. А вот как инструмент программирования к сожалению оказался довольно убог. Action script впринципе немного мдифицированный и подстроенный под нужды флэша JavaScript, с довольно ограниченной функциональностью. Тоесть далать что то типовое можно за счет кучи встроенных классов, но чуть в сторону свое, я честно говоря задолбплся и долго матерился =))
« Последнее редактирование: °ТУгбв 30, 2006, 09:53:29 am от aks »

Dmitry_Maksimov

  • Гость
Flash для нормальных игр (с большими просчетами) не пойдет, уж очень медленно работает, особо должен заметить плохая реализация тригонометрических функций (там есть что поразгонять), но это все было в 5-й версии, что сейчас не знаю, слыхал, что новшества какие-то "серьёзные" (если моно так сказать).

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

Свой подход объясняю ленивостью написания (переписания), лучше брать готовые и отлаженные модули.
Во всяком случае, если apache глюканет мы тут не причем (хотя мало вероятно, проверено временем), а если в прога вылитит, ручками восстанавливать придется (за apache хостингеры в ответе).

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Flash для больших разработок не подходит помимо тормозов еще отсутствием языка позволяющег оразрабатывать большие проекты =)

Свой подход объясняю ленивостью написания (переписания), лучше брать готовые и отлаженные модули.
Во всяком случае, если apache глюканет мы тут не причем (хотя мало вероятно, проверено временем), а если в прога вылитит, ручками восстанавливать придется (за apache хостингеры в ответе).
Ну это кому как. Я всетаки предпочитаю исспользовать адекватные инструменты, причем основанные так же давно известных и отлаженных методах. А за свой код я в ответе да, за это мне и деньги платят )
А то что прога вылетит, так это скорей можно сравнить c багом php-скрипта.
Короче, сегодня завтра выложу примерчик )

Dmitry_Maksimov

  • Гость
Спасибо (как будто я тут игрушки пишу :-) )

Dmitry_Maksimov

  • Гость
Раз уж на сокетах, тогда может сразу под линукс писать?

Dmitry_Maksimov

  • Гость
И всетаки от темы отдалились
"Информация по созданию php-сервера к C++-клиенту (UDP-протокол)"

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Раз уж на сокетах, тогда может сразу под линукс писать?
Ну для java нет разницы подо что писать. Не забывайте, что это платформенно независимый язык. И один и тот же код будет работать на разных ОС.
По поводу С/С++ впринципе при желании тоже можно написать код компиляющийся как под линуксом, так и в винде. Всеже концепция сокетов пришла в винду именно из юникс систем, и остался формат вызова таких же функций. На крайняк, при необходимости заюзать привязку к ОС, дерективами препроцессора разруливается код который должен быть виндовым или юниксовым. Хотя в случае сервера, делать нарочно поддержку винды врятли стоит =)
Хотя универсальность превыше всего =)

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
И всетаки от темы отдалились
"Информация по созданию php-сервера к C++-клиенту (UDP-протокол)"
Дык советы же даем. преимущества и недостатки обсуждаем. =))
Заодно и будующему поколению может полезно будет. =)

Demius

  • Гость
Название темы было придумано мной, из тех концепций и советов, которые я собрал до этого. Ничего ещё не решено окончательно. Во всяком случае на уровень LineAge я замахиваться не собираюсь(пусть попоробывал бы  :lol:). Сначала 2d платформа, LinaAge жанра, затем через n-е кол-во лет расширение до чего-либо комерческого. В виду отсталой графики (а что еще может написать 1-н чел, да ещё без большого опыта) основной упор на работу на слабых компах и через dial-up :shock:. (маленький клиент, с маленьким аппетитом к сис-ме и возможно меньший траффик.) Flash я не люблю (без всякой причины), Но разбирая ваш разговор, основной целью которого было не научить кого-либо, а доказать всем что оппонент идиот, всё-таки можно вынести что Java предпочтительнее php. Так что тему надо бы переименовать и перенести куда следует. :arrow:
« Последнее редактирование: БХЭвпСам 03, 2006, 01:57:06 pm от Demius »

Оффлайн Samael

  • Шпийон Сарумяна
  • Вице-канцлер
  • *****
  • Сообщений: 3543
  • Репутация: 70
  • Пол: Мужской
  • Гик - это не профессия, гик - это призвание...
  • SkypeID: kornev.vladimir
Рискну вклиниться в разговор, к тому же с оффтопом: Demius, не вполне понятно стремление писать нечно под слабые компы да еще и диалап -- это уже прошлый век, сейчас железо сильно подешевело, а про инет я вообще не говорю.
Один терапевт - это 1024 гигапевта, или 1048576 мегапевтов.
Все вышесказанное - исключительно IMHO :Samael:
Если Вам кто-то помог, нажмите

Оффлайн LEON

  • Действительный статский советник
  • *****
  • Сообщений: 1557
  • Репутация: 0
  • Пол: Мужской
  • Котята Геринга
Гы гы гы, а оппонент видимо действительно идиот :))

пхп для этого не подходт в принципе а далее уцже никакой разницы нет как и на чем делать.
Йа помню что дал мальчугану конфету в которой в начинке был кал...

Demius

  • Гость
Я ожидаю на первом этапе сделать что-либо похожее на http://www.lane.ru/ (http://www.lane.ru/screenshots/) Т.е. почти браузерная игра, на всё-таки с картой, а не набором вкладок. И Real-time жизнь, а не по ссылкам и через кнопку обновить... На втором этапе можно будет помечтать и о 3d.
« Последнее редактирование: БХЭвпСам 04, 2006, 04:55:08 pm от Demius »

Оффлайн aks

  • Администратор
  • Тайный советник
  • *****
  • Сообщений: 2836
  • Репутация: 74
  • Пол: Мужской
Но разбирая ваш разговор, основной целью которого было не научить кого-либо, а доказать всем что оппонент
Непрада, у меня нету цели выставить кого то идиотом. Есть желание немного просветить =)
Может даже в ближайшие дни примерчики выложу, которые Дмитрий просит. Если на работе сильного загруза не будет. =)

Dmitry_Maksimov

  • Гость
Непрада, у меня нету цели выставить кого то идиотом. Есть желание немного просветить =)
Может даже в ближайшие дни примерчики выложу, которые Дмитрий просит. Если на работе сильного загруза не будет. =)
Правда жизни aks... Кто-то просвещать на форумы вылазит, а кто-то (к примеру у кого звездочки темненькие) вылазит "поразводить за идиотов". Кто-то умеет вести дискуссии, а кто-то просто грязи подливает
Гы гы гы, а оппонент видимо действительно идиот :))
Я лишь предлагал упростить жизнь, но раз уж этого не надо, то просто соглашаюсь (в данной теме) с решением и убеждениями.

P.S.
ОППОНЕНТ - (от лат. opponens, род. п. opponentis - возражающий),..1) противник в споре...2) Лицо, которому поручена оценка диссертации или доклада.

Как-то не однозначно правда?

Оффлайн Calve

  • Действительный статский советник
  • *****
  • Сообщений: 1154
  • Репутация: 4
  • Пол: Мужской
Смешное название темы, сервер на php, клиент на С++, коммуникации на UDP :)
Видимо, человек вчера услышал о том, что можно через сокеты байты посылать, и решил попробовать на "скромненьком" проекте. Еще и пхп выучить :) Мне интересны те, кто за PHP. Вы хоть раз в жизни писали серверные вещи на этом языке? что из этого получилось? Под словом "серверные" я понимаю надежные приложения, использующие транзакции, синхронизацию потоков, восстановление оборваных сетевых соединений, которые в состоянии без серьезных проблем работать сутками, месяцами, может даже годами. Создавая прогу на ПХП вы сразу ставите себя в ненужную зависимость от веб-сервера. упал сервер - упала прога. Далее, многие фишки ПХП хостеры просто отключают. То есть, здесь ваша прога работает, а там - нет. По поводу управления исходным кодом. Даже если вы возьмете последние версии ПХП с поддержкой ООП, будет очень затруднительно написать много кода, т.к. насколько мне известно нет практически ни одной среды разработки, адаптированной к большим проектам. Потом еще вылезут проблемы с отладкой. С производительностью тоже будут проблемы, т.к. код не компилируется. Это значит, что как только в вашу игру начнут играть н-ное количество пользователей, сервер хостера начнет загибаться.

Приведите хоть одну причину почему серверную часть нужно писать именно на пхп. Только не надо про распространенность этой платформы, вы не сайт пишете.

PS Dmitry_Maksimov, ты случайно на знаком с Жаном?

Demius

  • Гость
Calve Примерно так. Теперь больше склоняюсь к Java. Какой использовать протокол, не знаю. UDP мне просто показался наиболее простым. Конечно хотелось бы и сервер написать на С++, но проект не комерческий, и платить деньги отдельный сервак пока напряжно. Всё будет совершенствоваться постепенно. Сначала клиент с GUI граффикой - Java-сервер, затем переход на 3d, после переход сервера на С++ на отдельном компе.

Оффлайн Calve

  • Действительный статский советник
  • *****
  • Сообщений: 1154
  • Репутация: 4
  • Пол: Мужской
Я думаю, Java тоже не лучший выбор. Хостинг дорогой и не компилируется.
Я бы посоветовал дотнет :), т.к. он лишен этих недостатков.

Оффлайн shake

  • Коллежский регистратор
  • *
  • Сообщений: 2
  • Репутация: 0
Здравствуйте, понимаю что тема весьма старая, тем не менее.
Сабж:
Нужно написать на PHP постоянный приёмник на один порт пакетов от разных клиентов с разных портов, обработка пакета и обратная пересылка клиенту.
Протокол: UDP, порт: допустим 21000, пакет может содержать: "getinfo", "getstatus".
Средне владею PHP, не работал с сокетами, наткнулся на примеры с использованием функций: stream_socket_server(), socket_create() etc.
Хочу узнать можно ли такое вообще сделать и хотелось бы получить пример на работу сокетов (хотя бы на localhost).
Клиент вызывает соединение через fsockopen("udp://адрес,порт,$errno,$errstr);.
Спасибо, надеюсь на Вашу помощь. :)

Оффлайн razb

  • Глобальный модератор
  • Надворный советник
  • *****
  • Сообщений: 420
  • Репутация: 13
  • Пол: Мужской
Цитировать
Хочу узнать можно ли такое вообще сделать и хотелось бы получить пример на работу сокетов (хотя бы на localhost).
Можно, за всеми примерами сюда http://php.net
"Интеллект - это способность избежать выполнения работы,
но, тем не менее, сделать так, чтобы она была выполнена" Linus Torvalds.

Оффлайн shake

  • Коллежский регистратор
  • *
  • Сообщений: 2
  • Репутация: 0
А подробнее? :) Там примеры скудные, сервер под линукс socket_create с флагом SOL_UDP не создаст. У меня в наличии простой хост.