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

Вниз

Переменные окружения и CGI   Найти похожие ветки 

 
Vint45   (2003-09-20 13:33) [0]

Здраствуйте! В своем CGI-модуле для определения размера принимаемых данных я использую:

GetEnvironmentVariable("CONTENT_LENGTH")

Допустим что данные я принимаю не сразу, а по истечении какого-то времени. Я специально поставил задержку на 20 сек. Вопрос такой, если запустить одновременно несколько CGI-модулей с различной длиной принимаемых данных, то GetEnvironmentVariable("CONTENT_LENGTH") должно ведь взяться со значением последнего запускаемого модуля? Т.е. Веб-сервер сначала поочередно установит CONTENT_LENGTH в разные значения, а по истечении 20 сек, каждый CGI-модуль считает последнее установленное значение CONTENT_LENGTH, которое для каждого модуля будет уже одинаковым. Но почему-то CONTENT_LENGTH считывается для каждого модуля свое.
Получается значения переменных окружения привязаны к инстансу приложения?


 
Verg   (2003-09-20 13:46) [1]


> Получается значения переменных окружения привязаны к инстансу
> приложения?


Примерно так.


 
Vint45   (2003-09-20 13:53) [2]

Ну раз так, тогда хорошо. А то я думал длину данных передавать в начале самих данных, а не считывать из переменых окружения, так как боялся что может возникнуть перехлест значений от разных запущенных cgi-модулей.


 
Verg   (2003-09-20 14:00) [3]


> А то я думал длину данных передавать в начале самих данных,
> а не считывать из переменых окружения, так как боялся что
> может возникнуть перехлест значений от разных запущенных
> cgi-модулей.


Че-то я не понял. Куда передавать?
Ты сервер делаешь или CGI к нему?


 
Vint45   (2003-09-20 14:14) [4]

Я прикручиваю свой CGI-модуль к Apache.
Цепочка такая: мой клиент передает файл через HTTP-запрос на Апач, а тот уже на CGI-модуль.
Так вот я думал на клиенте передавать помимо самого файла его длину, примерно так:

POST /cgi-bin/comp_trf.cgi HTTP/1.0
Host: localhost
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Content-Length: 6

6tested

на CGI-модуль попадает:

6tested

первый байт указывает длину данных


 
Verg   (2003-09-20 14:33) [5]

Советую для ознакомления почитать про функцию CreateProcess, в частности про параметр

lpEnvironment
Points to an environment block for the new process. If this parameter is NULL, the new process uses the environment of the calling process.

An environment block consists of a null-terminated block of null-terminated strings. Each string is in the form:

name=value


Because the equal sign is used as a separator, it must not be used in the name of an environment variable.
If an application provides an environment block, rather than passing NULL for this parameter, the current directory information of the system drives is not automatically propagated to the new process. For a discussion of this situation and how to handle it, see the following Remarks section.
An environment block can contain Unicode or ANSI characters. If the environment block pointed to by lpEnvironment contains Unicode characters, the dwCreationFlags field"s CREATE_UNICODE_ENVIRONMENT flag will be set. If the block contains ANSI characters, that flag will be clear.

Note that an ANSI environment block is terminated by two zero bytes: one for the last string, one more to terminate the block. A Unicode environment block is terminated by four zero bytes: two for the last string, two more to terminate the block.


 
Vint45   (2003-09-20 14:48) [6]

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


 
Dionys   (2003-09-20 21:09) [7]

у каждой выполняемой копии CGI-модуля собственные значения переменных окружения...



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

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

Наверх





Память: 0.46 MB
Время: 0.009 c
4-56959
kostik78ua
2003-09-19 21:38
2003.11.17
FindFirstChangeNotification


14-56881
default
2003-10-25 02:10
2003.11.17
Знатокам теории пределов


11-56549
васёк
2003-02-25 17:28
2003.11.17
C++Builder + KOL?


8-56779
Hatawa
2003-07-20 18:17
2003.11.17
Почему StretchBlt при использовании портит рисунок?


1-56557
Cr@cker
2003-11-07 21:03
2003.11.17
Как встроить midi файл в проект Delphi?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский