Tomsk Sysadmins Forum
Unix => Программирование => Topic started by: peretz on June 14, 2007, 00:11:29
-
ситуация следующая.
необходимо создать сокет-сервер для онлайн-игры.
к этому "серверу" цепляются флешки от клиентов.
взял "за базу" mssd 0.3 (Modular Socket Server Daemon) на перле.
дописал и настроил для нужной нам кондиции.
отлаживал на локальной машине (винда+денвер) и на серваке (freebsd 6 + перл 5.8.8).
сейчас переношу этот скрипт на "чистый" сервер (тоже freebsd 6 + перл 5.8.8),
однако возникли траблы: скрипт запускается, к нему проходит коннект от флехи
и на этом затыкается.
строчка
$self->socket->recv($buf,4096);
не передает в $buf ничего,
на локальном серваке (винда) - все ок!
кучу времени убил, но так и не допёр в чем дело.. перекопал скрипт, пытался "откатываться по версиям" своего скрипта и сравнивал конфиги серваков..
помогите!!
-
Посмотри tcpdump - что там у тебя происходит ниже по уровню.
Ну и офф: twisted - доказано джаббером.
-
Посмотри tcpdump - что там у тебя происходит ниже по уровню.
меня не особо просвятил данный дамп ) подскажи, ПЛИЗ, куда копать
Ну и офф: twisted - доказано джаббером.
а это я вообще не понял (
-
Ну ты же видишь там процесс установки соединения и тп? Вот и просмотри разницу. Можешь воспользоваться вместо tcpdump wireshark'ом.
---
Twisted - фреймворк для создания сетевых приложений. На нем написан PyICQt - транспорт для джаббера - на сегодняшний день самый толковый. Twisted умеет такие штуки как epoll, kqueue. Про перл в данном отношении сказать ничего не могу сам.
Просто читал у кого то, что на перле он больше сервера писать не будет : ) Это все ИМХО.
-
Ну ты же видишь там процесс установки соединения и тп? Вот и просмотри разницу.
уже начал копировать сервак на старый сервер, чтобы запустить на обоих и сравнивать.. и тут решил просто поменять порт, на который садится скрипт.
поставил 3000 вместо 2000 - и все поехало...
что-то я недопонимаю.... )
проблема 2000? )
Twisted - фреймворк для создания сетевых приложений.
спасибо за "наводку", буду посмотреть!
(сколько мы еще не знаем в этой жизни.. а сколько еще нам предстоит не узнать....)
-
Twisted - фреймворк для создания сетевых приложений. На нем написан PyICQt - транспорт для джаббера - на сегодняшний день самый толковый. Twisted умеет такие штуки как epoll, kqueue. Про перл в данном отношении сказать ничего не могу сам.
Просто читал у кого то, что на перле он больше сервера писать не будет : ) Это все ИМХО.
Для какого языка? Только Питон? А то обвязки kqueue существуютт и для перла, асишный libevent уже вообщее давным-давно существует...
-
Да я вроде как не противопоставлял. Просто пользуюсь именно им, и про другие рассуждать не могу, о чем честно написал : )
Обвязки это одно, а фреймворк это совсем другое. Меняете одну строчку и у вас уже оптимизированное приложение не под linux а под freebsd. Есть у твистед свои утилиты на Cях и тп. В общем не будем холиварить, главное у человека то все заработало : ))
-
Обвязки это одно, а фреймворк это совсем другое. Меняете одну строчку и у вас уже оптимизированное приложение не под linux а под freebsd. Есть у твистед свои утилиты на Cях и тп. В общем не будем холиварить, главное у человека то все заработало : ))
Да я не холиварю, мне просто интересноо, что здесь вкладывается в смысл слов и где граница. А то в libevent вообщетне нужно никаких строчек менять, например - оно само при сборке определяет. Может это тоже фреймворк? :)
-
Ну вам лучше знать что это : ) Вот и расскажите.
А насчет само... а оно мне точно надо?
-
Ну вам лучше знать что это : ) Вот и расскажите.
А насчет само... а оно мне точно надо?
Да я не в курсе, что нынче фреймворками называют (насколько широк охват). А что само - так естественно, в каждой оси свои фичи, и при компиляции это определеяется вполне однозначно.
-
В линуксе фич больше чем одна просто.
И я, при желании обсудить, давно бы уже сходил и прочел про twisted. И я пошел таки почитать про эту либ самую:
-- Currently, libevent supports /dev/poll, kqueue(2), select(2), poll(2) and epoll(4). Значит переключить можно (а кто б сомневался).
-- The event API provides a mechanism to execute a function when a specific event on a file descriptor occurs or after a given time has passed.
Отсюда видим, что это отнюдь не фреймворк, хотя и очень хорошая библиотека.
Фреймворк же это швейцарский нож, который позволяет вам думать только о сущности задачи, а не о работе с сокетами и тп. В twisted есть бибилиотеки для работы с протоколами xmpp, http1.0-1.1, webdav, irc ну и так далее. Те, если мне нужно было из бота отдать список последних пяти сообщений, то в пару строк описал мини сервер, который на любой запрос на опр порту отдавал rss фид.
-
В линуксе фич больше чем одна просто.
Мм, а что еще?
-- The event API provides a mechanism to execute a function when a specific event on a file descriptor occurs or after a given time has passed.
Отсюда видим, что это отнюдь не фреймворк, хотя и очень хорошая библиотека.
Фреймворк же это швейцарский нож, который позволяет вам думать только о сущности задачи, а не о работе с сокетами и тп. В twisted есть бибилиотеки для работы с протоколами xmpp, http1.0-1.1, webdav, irc ну и так далее. Те, если мне нужно было из бота отдать список последних пяти сообщений, то в пару строк описал мини сервер, который на любой запрос на опр порту отдавал rss фид.
А, теперь понятно. Значит, по задачам: мне был нужен достаточно низкий уровень - впрочем, оно и понятно, Си довольно низкоуровневой язык...