Форум: "Сети";
Текущий архив: 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.049 c