Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.28;
Скачать: CL | DM;

Вниз

Клиент сервер и мемори стрим   Найти похожие ветки 

 
Fl@sh ©   (2006-05-10 15:42) [0]

Уважаемые мастера.
Работаю с клиент-сервером.
Нужно передать TMemoryStream с клиента на сервер и обратно.

Вот как передаю с сервера на клиент:
...
var
 ms: TMemoryStream;
 SL: TStringList;
...

//Код на сервере:
   SL := TStringList.Create;
   ms := TMemoryStream.Create;
   try
     try
       Sl.Add("asdf");
       sl.Add("sadfdfdf");
       sl.Add("sadfsdfsdfsdfsd");
       SL.SaveToStream(ms);
       MS.Position := 0;
       ASender.Thread.Connection.WriteStream(ms, true, false);
     except
       on E: Exception do
         Writeln("Error:" + e.Message);
     end;
   finally
     SL.Free;
     ms.Free;
   end;

//Код на клиенте:

 IdTCPClient.Connect;
 IdTCPClient.SendCmd("select");
 ms := TMemoryStream.Create;
 SL := TStringList.Create;
 try
   try
     IdTCPClient.ReadStream(ms, ms.Size, false);
     ms.Position := 0;
     SL.LoadFromStream(ms);
     Memo1.Lines.Assign(SL);
   except
     on e: Exception do
       showMessage("Error: " + e.Message);
   end;
 finally
   SL.Free;
   ms.Free;
 end;

В таком случае передает, но первую строчку не посылает, интерестно почему бы это??

А вот с клиента на сервер, вообще ни в какую не идет!
Вот код, исправте меня пожалуйста:

Код на сервере:
   SL := TStringList.Create;
   ms := TMemoryStream.Create;
   try
     try
       ASender.Thread.Connection.ReadStream(ms, ms.Size, False);
       ms.Position := 0;
       sl.LoadFromStream(ms);
       Memo1.Lines.Assign(SL);
     except
       on E: Exception do
         Writeln("Error:" + e.Message);
     end;
   finally
     SL.Free;
     ms.Free;
   end;
Код на клиенте:
 IdTCPClient.Connect;
 IdTCPClient.SendCmd("select");
 ms := TMemoryStream.Create;
 SL := TStringList.Create;
 try
   try
     Sl.Add("asdf");
     sl.Add("sadfdfdf");
     sl.Add("sadfsdfsdfsdfsd");
     SL.SaveToStream(ms);
     MS.Position := 0;
     IdTCPClient.WriteStream(ms, True, False);
   except
     on e: Exception do
       showMessage("Error: " + e.Message);
   end;
 finally
   SL.Free;
   ms.Free;
 end;


Когда посылаю команду, заходит в процедуру, но когда вот после
ASender.Thread.Connection.ReadStream(ms, ms.Size, False);
он не обращается к клиенту, чтоб прочитать, а идет дальше, почему, как исправить??

Или можно по другому, тогда как, можна маленький пример.


 
Fl@sh ©   (2006-05-10 19:27) [1]

Странно... Неужели никто не сталкивался с данным вопросом



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

Текущий архив: 2006.05.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
2-1147524870
Viconia
2006-05-13 16:54
2006.05.28
Закрытие формы


2-1146825295
KygECHuK
2006-05-05 14:34
2006.05.28
Как удалить ссылку из RTF документа ?


1-1145128372
Volf_555
2006-04-15 23:12
2006.05.28
Проблема с вызовом процедуры из DLL


15-1146731009
MrShadow_
2006-05-04 12:23
2006.05.28
Прозрачность отдельных компонентов...


4-1141976764
V-A-V
2006-03-10 10:46
2006.05.28
Работа с реестром без админских прав