Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

HTTP Server   Найти похожие ветки 

 
djon silver   (2006-12-19 13:05) [0]

есть ли примеры как сделать, тока не на инди

тоесть по запросу http://192.168.44.11/index.htm

передавать файл index.htm
а так же обрабатывать такие ссылки

http://192.168.44.11/index.htm?id=33?root=22


 
Anatoly Podgoretsky ©   (2006-12-19 13:18) [1]

> djon silver  (19.12.2006 13:05:00)  [0]

На компьютере 192.168.44.11 установить ВЕБ сервер


 
djon silver   (2006-12-19 23:43) [2]

а как сделать его ?
(в будущем мне хотелось довесить банлист)


 
SpellCaster   (2006-12-20 13:00) [3]

Копай в сторону проекта ДЕНВЕР


 
novill ©   (2006-12-20 14:30) [4]

> [0] djon silver   (19.12.06 13:05)

Ты самхочешь написать, что ли? Почему стандартные не подошли?


 
djon silver   (2006-12-20 17:00) [5]

глянул на Денвер, много не нужного php,
думаю может компоненты есть какие
под делфи 4 у меня валяется Фтпсервер,
простенький с одной деректорией, может и исходники Http servera
есть (стандартными средствами)

Small Http не плох, но хочется свое и ничего лишнего


 
Anatoly Podgoretsky ©   (2006-12-20 17:06) [6]

> djon silver  (20.12.2006 17:00:05)  [5]

> может и исходники Http servera есть (стандартными средствами)

Из много есть, разных, кажется даже хобби такое существует - написание сервера.


 
SpellCaster   (2006-12-20 18:33) [7]

> [6] Anatoly Podgoretsky ©   (20.12.06 17:06)

...сказал человек, написавший свой ньюс-сервер =)))


 
Anatoly Podgoretsky ©   (2006-12-20 19:11) [8]

> SpellCaster  (20.12.2006 18:33:07)  [7]

Стал бы я писать, если бы работал готовый.
Но к сожалению в Инди кривой, а в ICS нет.
Да и чего там писать, там в основном пользовательская обработка, а сервер семечки.


 
Pa5ha ©   (2006-12-22 22:57) [9]

Мне тоже надо написать сервер. Правда, на сервере есть только gcc, так ша будем транслировать ) Надеюсь, принциипы одинаковые.

Итак, при постеплении соединения порождает процесс:
   while((accept_sock = accept(listen_sock,
       (struct sockaddr *)(&accept_name), &accept_len)) != -1) {

       /* вывод сведений о поступившем соединении */
       printf("принято входящее соединение с адреса %s порта %d\n",
           inet_ntoa(accept_name.sin_addr), ntohs(accept_name.sin_port));

       /* порождение процесса, в котором будет обрабатываться */
       /* поступившее соединение */
       switch(pid = fork()) {


Далее в зависимости от того куда мы попадаем выполняем что нам нада.
В частности интересует что делать в потомке.
           /* потомок */
           case 0:

               /* сокет для приема входящих соединений в потомке не нужен */
               if(close(listen_sock) == -1) {
                   perror("close");
                   exit(EXIT_FAILURE);
               }

               /* запустить клиентскую фунцию */
               /* и успешно завершить работу */
               client(accept_sock);
               exit(EXIT_SUCCESS);
               /* недостижимо */
               break;

Так вот, мы получаем запрос и выполняем его. Вопросы.
Каким образом отправлять данные? send или write? Размер буфера по идее должен быть известен заранее. Сколько? Сколько максимум? Как выбрать? Как получать запрос? recv? Если да, то как это дело получать? Сколько буффер?

В общем не поомешало бы мануал по этому делу, можна послать меня куда-нить -) Исходники с радостью поизучал бы. Если на Си, то вообще супер.


 
djon silver   (2006-12-24 00:35) [10]

>Anatoly Podgoretsky

а я писал NNTP клиент , провда с использованием сторонних
компонентов не желающее работать без среды делфи и
не понимает русский charset

>Pa5ha

хоть бы на делфи написать , на си успеешь)


 
Pa5ha ©   (2006-12-25 13:07) [11]

У меня тут лажа небольшая получается. Файл в телнет отправляется целиком, в браузер надо думать тоже, но вобщем в браузере видна только часть файла. Отравлял файлы сендом, одним куском ) 28 кб, отправилось около 19800 байт и 6 кб, отправилось только 1400 с чем то. Куда копать?


 
djon silver   (2006-12-26 00:11) [12]

UDP или TCP юзаем ,\?


 
s002156 ©   (2006-12-29 12:37) [13]

Копать надо в сторону досрочного закрытия сокета данные еще недошли а сокет ты уже закрыл....

Нипонятно в чем глючные Инди сервера у меня собственный веб сервер на инди работает, я его даже для публичного хостинга использую простенький такой серверочек кило 400 получился можите потестить его www.tsg.tvhost.ru на немже www.tvhost.ru на немже www.roddom.tvhost.ru и многое другое. Если нужны исходники обращайтесь не жалко...


 
AgainSlymRO   (2006-12-29 12:55) [14]

s002156 ©   (29.12.06 12:37) [13]
Инди сервера

Могут западло сделать с POST
Если не указать инди ContentLength инди будет качать бо посинения! пока входящий трафик не съест все твои денюжки...
Обрубить ContentLength можно только переделкой компоненты что я и сделал, есть еще пара причуд о которых я умолчу


 
Pa5ha ©   (2007-01-02 23:48) [15]

Помогите пожалуйста с парсингом хттп запроса. Интересует сам алгоритм. Как правильно получить сам запрос, чтоб своп-файл кулхацкера не загрузить и в то же время при запросе пост ничего не потерять?
 fd_set sockets;
 struct timeval timeout;
 
 FD_ZERO(&sockets);
 FD_SET(_socket_descriptor, &sockets);
 
 timeout.tv_sec = 2;
 timeout.tv_usec = 0;
     
 
 if (select(_socket_descriptor+1, &sockets, NULL, NULL, &timeout))
 {
     fragmentInLength = recv(_socket_descriptor, str, buffer_size-1, MSG_DONTWAIT );
     str[fragmentInLength] = "\0";
     strcat(request, str);
 }
   
 return fragmentInLength;

смысл примерно такой. Нада использовать селект, чтоб дос атака не получилась при открытии мильёна сокетов, но т.к. стоит ограничение на открытые сокеты, то сервер просто откажется принимать соединения пока сокеты не освободяца. И ресейв нада делать несколько раз, т.к. отрпавка может происходить в несколько этапов. Например при отправке из телнета строками. Приветствуется пример. Лучше на Си ) Псип )



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.043 c
2-1184524311
Pont
2007-07-15 22:31
2007.08.12
Вырезание из файла


2-1184563232
Kolan
2007-07-16 09:20
2007.08.12
DBGrid с dbEditing — не редактируется, в чем может быть дело?


15-1184156044
trubin
2007-07-11 16:14
2007.08.12
Загрузить, Закачать, Скачать или ...


2-1184868774
Knob
2007-07-19 22:12
2007.08.12
Запись данных в файл


2-1184515931
Zagaevskiy
2007-07-15 20:12
2007.08.12
Язык системы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский