Форум: "Прочее";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
ВнизНе в тему, но все же вопросы к профессионалам Perl Найти похожие ветки
← →
guard_gg © (2006-09-30 10:02) [0]Доброго времени суток.
Я не так давно работаю с Perl, (всего 2 недели бессонных дней и ночей изучения, естественно не одного написанного для каких-либо целей скрипта, просто знания синтаксиса языка и небольшой опыт работы с процедурами и функциями).
Мне необходимо написать скрипт сервера, к которому подключалось бы несколько клиентов и этот сервер используя комманды клиентов, обрабатывал данные каким либо образом, или/и передавал их определенному другому клиенту. По сути дела это должен быть скрипт чата, только более функциональный.
После долгих изучений интернет-документаций (ЛИЧНОЕ МНЕНИЕ: Либо полный бред, либо 5% переведенной документации разработчиков), а также документации разработчиков, и просмотр скриптов чата я пришел в тупик.
КАК БОРОТЬСЯ С ЭТИМИ ПРОБЛЕМАМИ?
1) Функция "accept" приостанавливает работу скрипта пока не будет подключен новый клиент и в это время невозможно выполнять комманды отосланные на сервер подключенными клиетами.
2) Насколько я понимаю используя TCP протокол мы можем пользоваться сообщениями CallBack, к примеру On_ClientRead On_ClientWrite On_Connected (вообщето это для Delphi and C, но Perl тоже имеет CallBack, видел гдето в документации), что вполне бы решало мою проблему, но про CallBack в сокетах я ничего не нашел, в скриптах чата видел как человек получает данные TCP протокола от клиента как будто этол UDP протокол, может ошибаюсь по неопытности но вроде так.
3) В документации разработчика про multiconnected socket говорилось об использовании функции fork, но тогда у меня возникает 2 вопроса:
- Не слишком ли это жирно когда к серверу подключены к примеру 100 человек и на сервере загружен 101 скрипт, 100 + 1 ждет нового клиента?
- Как между этим неограниченным количеством запущенных скриптов передавать данные от одного клиента к другому (т е от одного скрипта другому), верю что возможно но может оказаться черезчур сложным или медленным.
4) А можно ли написать программу на Delphi или C и запустить на Windows сервере, насколько я понимаю там скрипты с раширением asp, и наверное exe-шку никто тебе не разрешит запустить.., эх.... я запутался.... подскажите кто-нибудь please.
← →
ZMRaven © (2006-09-30 13:15) [1]а теперь выпей чего-нибудь и сходи к друзьям отдохни..пусть знания улёгяться в голове на недельку :-)...
а через недельку подумай снова.
← →
X9 © (2006-09-30 15:07) [2]Не понимаю, зачем так всё усложнять.
Скрипты на Perl в Интернете работают по протоколу (если так можно выразиться) CGI: в крипт передаются параметры и выходят обработанные данные.
Я ещё не встречал постоянно работающий скрипт (просто не искал), так как это слишком рискованно, ибо зависание оного будет очень неприятным делом.
К тому же, многие хостеры не любят скрипты, которые постоянно грузят процессор и кушают память.
Данные от одного клиента можно держать в каком-либо файле (или БД), и запрашивать их уже при поключении другого клиента, который выполнит скрипт с определёнными параметрами.
Например, заходя на этот форум Вы невно запускаете скрпт http://delphimaster.ru/cgi-bin/forum.pl, который
← →
X9 © (2006-09-30 15:16) [3]< извинияюсь, невовремя нажал "Отправить">
... который путём выполенения определённых действий генерирует страничку, которая и отображается в браузере. Например, чтобы попасть в конференцию "Прочее" и посмотреть мои вопросы, скрипту передаются следующие параметры: http://delphimaster.ru/cgi-bin/forum.pl?n=3&user=X9 ,
где параметрами являются "n" (значение в скрипте = 3) и "user" (значение = X9).
С помощью процедуры print (или других процедур вывода) клиенту передаются данные, например:print("<!DOCTYPE HTML public "-//W3C//DTD HTML 4.0 Transitional//EN"//">
В браузер будет передан этот код, затем он сможет отобразить страницу.
← →
palva © (2006-09-30 17:08) [4]> Не понимаю, зачем так всё усложнять.
Автор не хочет писать обычный CGI. Он хочет писать сервер.
Зачем? По-видимому, начальство поручило. А тут уж обсуждать нечего. Пиши и получай за это деньги либо не пиши, тогда увольняйся.
← →
guard_gg © (2006-10-05 02:03) [5]izvinite chto na latinice.
Spasib za infu po CGI no k sozhalenyu ya ee znau dostatochno horosho.
Menia interesuet imenno sozdanie servera, i ya dazhe ne znau pod chem ego napisat". Pozhaluista, posovetuite! Poka ia tak i ne yshlishal otveti na svoi voprosi.
izvin chto nasilutu delphi master, no ia sam programmist delphi, i ne pervii den" zdes" bivau.
← →
McSimm © (2006-10-05 10:57) [6]Если вы пишите web приложение, т.е. между вами и клиентом находится web-server и браузер, придется следовать спецификации CGI.
На чем написано CGI-приложение - неважно, это в равной степени может быть и exe для Windows сервера.
Но держать постоянное соединение и пользоваться всеми его прелестями не получится, т.к. соединение держит web-server с браузером.
Хотя, в браузер можно внедрить активный элемент, например Flash или ActiveX или вообще отказаться от браузера, но на стороне сервера нужен свой агент (или демон), который будет жить независимо от web-сервера, слушать порты и держать соединения. И в этом случае уж совсем не важно на чем написан сервер. Можно и на Perl и на PHP (работа с сокетами в них есть), но наверное проще все же на C (или Делфи, если Windows)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c