Обмен данными сервер-программа
У меня такой вот вопрос, есть у меня небольшая программка, которая шлёт на сервер запрос чтото типа GET http://some_host/?q=3 HTTP/1.1
в ответ проге, сервер должен отослать квадрат полученного числа, а именно 9. Я же получаю в ответ весь мусор протокола http
view = HTTP/1.1 200 OK
Server: nginx/0.5.20
Date: Sun, 01 Jul 2007 14:34:04 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
9
как видно, лишней информации очень-очень много =(
когда мне надо получить всегото 1байт, я получаю 150
можно ли как нибудь использовать другой протокол, или как нибудь без http, чисто на ip-domain(сервер-клиент) выкрутиться
или максимум снизить заголовки, онлайн мморпг игры както же выкручиваются, у них ведь заголовки не такие. тогда какие протоколы там используются.. и тд.
на сервере который юзаю, используется php, можно ли как нибудь наладить нормальную связь, и если да то какой должен быть протокол, что должно работать на сервере, хватит ли для этой цели php.
подскажите кто что думает по этому поводу.
спасибо..
Либо разрабатываешь свой протокол, серверную часть, которая выполняется не по запросу а все время висит на сервере и реализуешь свой протокол через TCP или UDP сокеты. Абсолютно ничего сложного в самом сетевом взаимодействии тут нет - главное грамотно организовать протокол и его обработку. Ну и конешно клиентская часть должна уметь работать с сокетами. Если ты пытаешься делать это из браузера, то он сам по себе не дас такой возможности. Надо юзать что то дополнительное типа Java applets, Flash и т.п. Если у тебя просто своя самописная прогроамма, то конечно прощще реализовать свой протокол (ну или видоизменить какой либо более подходящий и расширяемый протокол), HTTP всеже для этих целей исспользовать неэффективно.
теперь вот хочу попробовать вытащить этот сервак на хост и написать его например на php, конечно же корень квадратный был приведён для примера.
вот хотелось бы узнать про организацию протоколов на стороне сервера
думал на счёт UDP, но подробной инфы не нашел по этому поводу.
основная суть вопроса, есть ли возможность связаться через свою самописную прогу например с php сервером используя левый протокол, ну или свой. и если да, то где об этом (протоколы на хостах) можно узнать подробнее.
какие нить статейки, или чтото от себя
может гдет на форуме было уже отписано про реализацию протоколов. что для этого над делать на самом хосте и тд.
вот..
кто что думает по этому поводу?
Его конечно можно переписать на php, но на мой взгляд - это не лучший вариант. Всеже этот язык в первую очередь для web предназначен, а не самостоятельный сервер писать. Но конечно же там точно так же можно обмениваться данными через сокеты. И Так же исспользуйте свой собственный протокол.
Хотя если все уже работает на локальной машине - не вижу проблемы тогда, почеу бы это все не запустить в другом месте, и почему вобще встает такой вопрос. )
PS: может я в чём-то и не прав.
PPS: а aks прав если сервер уже написан, то почему просто не перетащить его на другую машину? :)
пхп там держится, на счёт другого всего просто не смотрел, думал можно будет просто тамошним пхп обойтись, для написания сервера и апгрета самого клиента
Я так понимаю, что автор тратиться на сервер не хочет. Или хочет, но не сильно. Вот ты мне покажи какой хостер даст у себя запускать некое ПО? Тут только дедик.
ЗЫ. Кстати на форуме висит реклама VDS-а, так может это как раз и спасет отца русской демократии? :D Тем более, что цены более чем демократичные особо сравнивая с дедиками. А для его задачи, имхо, VDS-а должно за глаза хватить.
Ну я никогда не пользовался такими хостерами, если у меня нет рутового шела на сервер. )) Просто привычка.
Ну вобще на php можно конечно написать. Хотя полно Java хостингов, Python хостингов и т.п. Помоему это более приятно юзать для создания сервера. )
Ну вобще на php можно конечно написать.
Можно. Я даже web сервер видел написаный на PHP. Но это же изврат еще тот. Можно и суп палочками есть :D , но ложка то практичнее.
пхп там держится, на счёт другого всего просто не смотрел, думал можно будет просто тамошним пхп обойтись, для написания сервера и апгрета самого клиента
а на чём счась серв написан? и что он вообще делает? :)
а сервак думали отписать на пхп.
но при раскладе что клиен может слать до 10 запрросов в секунду, сами лишние байты протокола http не устраивают. это до килобайта мусора в секунду выходит? вот я и хотел спросить, можно ли стандартными стредствами это реализовать. или всётаки выход, иметь гуд хост и юзать exe (cgi) сервак
не знаете ли где статейку про организацию сервера на перле?
именно сервера, тут на сайте прочел про соединение с сервером.
а вот сам сервер не описан.
если знаете статейку хотябы примерную, или пару функций каких над буит юзать, подробнее дальше найду думаю, главное нать ведь чтоб держать порт и отвечал на приход данных,
с обработкой последних то уж разбирусь
А лишние байты они всеравно будут. Хоть в протоколах более низкого уровня. В TCP, в IP и т.п. )
вот пара статей по теме
_http://lock-team.ru/articles/coding/17
_http://lock-team.ru/articles/coding/18
вообще не понимаю почему некоторые php так не любят...
Вообще думаю с перлом проблем не будет, только из за того что работал с ним раньше. Си знаем, с линекс системками работали, так что пхп быстро освоил, по началу я даже вот спрашивал можно ли замутить сервак на пхп, это было бы гораздо проще с ним я практически на ты.
единственное хттп протокол юзать не хочу, а статеек соего протокола на пхп не видал, то что будут байты протокола это ладно, главное чтобы небыло огромнейших ненужных заголовков хттп =)
судя по ссылочкам, скорее всего пхп лучше и будет, лучше знаю и вроде описано в статейке норм, вот чтото вроде такого и искал, а вот по пёрлу, такую статейку уже читал, там только клиент, сервера нету..
лан, всем большое спасибо, пошел читать статейку c php =)
будут вопросы то скорее всего уже относительно пхп.
удачи всем =)
в общем:
клиент открывает сокет и шлёт запрос на хост и порт, потом принимает
Сервер:
на сервере функции socket_create, socket_bind, socket_listen
запускают,определяют и слушают сокет
теперь, ф-ция socket_accept получает соединение,
и скажем сервак сразу шлёт что то.
вот теперь вопрос, как мне сделать так, чтобы этот скрипт был гдето запущен,(чем его запустить когда он на хосте) выслушивал сокеты и слал ответы.
и
можно ли тут обойтись без вечных циклов while(1) при работе с сокетом
а сделать такую вешь:
сервер в покое, потом клиент както его запускает, отсылает данные получает и сервер дальше в покое (скрипт не выполняется)
если нет, или это не рационально, то как тогда мне запустить этот скрипт сервера, чтобы потом без проблем в любое время с ним соединиться
вот, надеюсь понятно выссказался.
но запускаю я этот скрипт через php интерпритатор. правой кнопкой мыши открыть с помощью php, сервер работает.
как мне на хостинге запустить это дело?
вот теперь вопрос, как мне сделать так, чтобы этот скрипт был гдето запущен,(чем его запустить когда он на хосте)
Ну как чем, ручками запустить. Как и на домашнем компе программу.
можно ли тут обойтись без вечных циклов while(1) при работе с сокетом
а сделать такую вешь:
сервер в покое, потом клиент както его запускает, отсылает данные получает и сервер дальше в покое (скрипт не выполняется)
Нет, нельзя. Как ты себе это представляешь? )
Скрипт - это и есть сервер. )
а вот с сокетами раньше не работал, поэтому вот думал может тоже можно буз вечных циклов.. просто меня смущает это малость. зациклить скрипт навечно.
запустив ручками прогу ресурсов вроде не жрёт, запустил через браузер в деневе повис =)))
так а вот ещё всё тотже вопрос подробнее, пусть у меня есть index.php которую и надо запустить. никогда дел ещё не имел с запуском скриптов вручную. неужели инетрпритатор ещё нужно будет скопировать? или через свой cmd его запустить.
подробнее расскажите как врубить этот скрипт с вечный циклом.
просто вырубать его можно какаойнить строкой, а на серваке его над ещё и запустить =) вот с этим не сообразил чтото
усё запустил скриптом вроде работает, темку ток не закрывайте, буду усложнять скрипт, выбирать хост, могут ещё вопросы появиться.
а пока всем спасибо =)