![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIdHttpServer TIdHttp TIdTCPClient TIdTCPServer [D6, WinXP]
ilka © (2003-10-01 15:01:00)
Добрый день. Написал код для пересылки данных используя TIdTCPClient и TIdTCPServer, переделал под TIdHttpServer и TIdHttp но он не работает, TIdHttpServer.OnExecute()- не вызывается.
//send
var
m:TMemoryStream;
m:=TMemoryStream.Create;
m.LoadFromFile("2.txt");
IdHTTP1.WriteStream(m,true,true);
.....
TForm1.IdHTTPServer1Execute(...)
var
m:TMemoryStream;
....
m:=TMemoryStream.Create;
AThread.Connection.ReadStream(m);
m.SaveToFile("4.txt");
Reindeer Moss Eater (2003-10-09 14:26:00) [1]
Если TIdHttpServer.CommandHandlers не существует, то откуда взялось событие OnCommandOthers?????
serverCommandOther(Thread: TIdPeerThread; const asCommand, asData, asVersion: String);
как я понял полученные данные назодятся в asData:string, а запакованные данные содержат недопустимые для string символы.
Какие такие "запакованные" данные? Это данные из реквеста отправленного из БРАУЗЕРА.
ilka (2003-10-09 13:32:00) [2]
>Ну и как тебя понимать?
TIdHttpServer.CommandHandlers не существует
>Это почему еще?
serverCommandOther(Thread: TIdPeerThread; const asCommand, asData, asVersion: String);
как я понял полученные данные назодятся в asData:string, а запакованные данные содержат недопустимые для string символы.
если через client.POst(..., TStream("файл") ,...) то вызывается
Server.OnCommandGet(AThread: TIdPeerThread; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
где данные в ARequestInfo.Params.Text. Опятьже данные доходят не все
Reindeer Moss Eater (2003-10-09 13:05:00) [3]
>Reindeer Moss Eater © (07.10.03 09:09) [6]
в делфе6 у TIdHttpServer нет CommandHandlers
Ну и как тебя понимать?
но проблема в том что я немогу использовать ONCommandOther тк надо будет пересылать заархивированные данные, а ONCommandOther не дает возможности их прислать.
Это почему еще?
ilka (2003-10-09 13:00:00) [4]
клиеент соединен с сервером
но вместо OnExecute вызывается Server.ONCommandOther
и в нем мои данные, но проблема в том что я немогу использовать ONCommandOther тк надо будет пересылать заархивированные данные, а ONCommandOther не дает возможности их прислать.
Reindeer Moss Eater (2003-10-09 08:47:00) [5]
Значит твой клиент не соединен с сервером или ничего не пишет ему.
ilka (2003-10-08 19:28:00) [6]
>Reindeer Moss Eater © (07.10.03 09:09) [6]
в делфе6 у TIdHttpServer нет CommandHandlers
Reindeer Moss Eater (2003-10-07 09:09:00) [7]
TIdHTTPServer.CommandHandlers : TIdCommandHandlers;
Если у сервера определены хендлеры команд (свойство CommandHandlers не пустое), то событие OnExecute НЕ ГЕНЕРИРУЕТСЯ сервером.
Вся обработка происходит в OnBeforeCommandHandler, OnAfterCommandHandler, OnNoCommand.
Все.
Это если твой клиент вообще сумел соединиться с сервером и что-о посылает ему (в чем я сомневаюсь уже)
Reindeer Moss Eater (2003-10-06 17:28:00) [8]
Смени пластинку
ilka (2003-10-06 17:09:00) [9]
что это значит..
и как с этим бороться ?..
Reindeer Moss Eater (2003-10-06 09:47:00) [10]
То и значит, что список CommandHandlers - не пустой.
ilka (2003-10-04 13:50:00) [11]
>Reindeer Moss Eater © (01.10.03 15:16) [1]
а что значит "у сервера определены CommandHandlers"
Reindeer Moss Eater (2003-10-01 15:16:00) [12]
Если OnExecute и вправду не вызывается, значит у сервера определены CommandHandlers