|
|
|
| хочу сделать страницу с которой чат сможет забирать сообщения
но вот вопрос
для быстроты какой из этих методов выгоднее и удобнее? | |
|
|
|
|
|
|
|
для: bronenos
(06.07.2007 в 14:48)
| | Не вижу вообще методов. PHP - язык программирования. CGI - сетевой шлюзовый интерфейс.
Если под CGI подразумевался Perl (частая ошибка), то могу сказать, что Perl работает быстрее. Тем более, когда нужно парсить текст. Тем более, если его много. | |
|
|
|
|
|
|
|
для: SHAman
(06.07.2007 в 15:50)
| | я слышал что cgi это просто файлы на с++
а учитывая что с++ работает быстрее пхп то задумался. не выбрать ли его для своих целей | |
|
|
|
|
|
|
|
для: bronenos
(06.07.2007 в 16:29)
| | По моему под расширением CGI может быть любой язык програмирования. Будь он perl или С++ | |
|
|
|
|
|
|
|
для: Faraon
(06.07.2007 в 16:34)
| | элементарная скомпилированная вещь
#include <iostream.h>
using namespace std;
int main()
{
system ("chcp 1251");
system ("cls");
cout << "Проверка";
return 0;
}
|
не работает. сервер дает ошибку (сервер а не программа) | |
|
|
|
|
|
|
|
для: bronenos
(06.07.2007 в 17:28)
| | Попробуй так:
cout << "Content-type: text/html; charset=windows-1251;\n\n";
cout << "Проверка.";
Что касается C++, то это зря. Он медленнее. К тому же, для большинства веб-приложений достаточно процедурной парадигмы разработки. А C++ от C отличается только тем, что он объектно-ориентированный.
Короче, самая быстрая прога получится на C. (если не считать асм, естественно : ) ) | |
|
|
|
|
|
|
|
для: SHAman
(06.07.2007 в 17:44)
| | так тоже server error | |
|
|
|
|
|
|
|
для: SHAman
(06.07.2007 в 17:44)
| | >Что касается C++, то это зря. Он медленнее.
Шутка, да? | |
|
|
|
|
|
|
|
для: Trianon
(07.07.2007 в 01:44)
| | Никакая не шутка. Относительно C, C++ медленнее, потому что объетно-ориентирован. А если писать на C++ процедурно, то смысла я не вижу. | |
|
|
|
|
|
|
|
для: bronenos
(06.07.2007 в 17:28)
| | Потому что CGI-хандлеры так не пишут.
CGI-хандлер должен
а) прочитать из стандартного входного потока заголовок запроса
б) определить длину тела запроса, если таковое есть.
в) прочитать из стандартного входного потока тело запроса, если таковое есть.
г) и ни в коем случае не залезть за границу запроса !!!!
д) получить переменные окружения
е) на базе а),в),д) выполнить обработку
ж) сформировать полный набор полей заголовка отклика и выплюнуть его в стандартный выходной поток
з) если есть тело отклика - выплюнуть в стандартный выходной поток разделяющую пустую строку и тело.
и) если тело не пустое - выплюнуть в стандартный выходной поток тело отклика
й) завершить выполнение.
Конечно он многое может не делать, но в отличие от скрипта на php - сформировать заголовок отклика полностью - его непреложная задача:
200 HTTP/1.1 OK
Content-Type: text/plain ; charset="windows-1251"
Content-Length: 10
Проверка
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.07.2007 в 01:38)
| | вам не трудно будет написать какую нибудь простенькую программу выводящую Hi all?
а то не совсем понятно все что надо и как :) | |
|
|
|
|
|
|
|
для: bronenos
(07.07.2007 в 09:13)
| |
#include <stdio.h>
char body[] =
"<HTML><HEAD><TITLE>test</TITLE></HEAD><BODY><H1>Hi All!</H1></BODY></HTML>" "\r\n";
int main()
{
printf(
"200 HTTP/1.0 OK" "\r\n"
"Content-Type: text/plain ; charset=\"windows-1251\"" "\r\n"
"Content-Length: %d" "\r\n"
"\r\n"
"%s" "\r\n",
strlen(body),
body);
return 200;
}
|
Или Вам нужен именно С++? | |
|
|
|
|
|
|
|
для: Trianon
(07.07.2007 в 13:39)
| | спасибо, на с++ я перевести уж смогу...
правда я думал что первая строка
не 200 HTTP/1.0 OK
а HTTP/1.0 200 OK
а насчет .cgi?id=4
где мне прочитать значение ид?
полагаю что в argv массиве, втором аргумент, но как? в с++ нет ассоциативных массивов.. | |
|
|
|
|
|
|
|
для: bronenos
(07.07.2007 в 15:29)
| | как получить доступ к переменным окружения - представляете?
третий параметр main или вызов getenv()
Нету на уровне приложения никаких ассоциативнх массивов.
Есть переменная окружения QUERY_STRING и переменная окружения CONTENT-LENGTH -- оттуда и растут все ноги.
Печатайте список переменных окружения и вперед.
>правда я думал что первая строка HTTP/1.0 200 OK
это я напутал. | |
|
|
|
|
|
|
|
для: Trianon
(07.07.2007 в 17:07)
| | getenv в каком файле? | |
|
|
|
|
|
|
|
для: bronenos
(07.07.2007 в 17:46)
| | stdlib наверное | |
|
|
|
|
|
|
|
для: Trianon
(07.07.2007 в 17:47)
| | пасиба, буду пробовать | |
|
|
|
|
|
|
|
для: Faraon
(06.07.2007 в 16:34)
| | Еще раз говорю: CGI - это не расширение. Это ИНТЕРФЕЙС. Чтоб вы знали, ваш любимый php тоже использует вовсю этот интерфейс : ) | |
|
|
|