Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.026 c
1-1145453390
Uriy
2006-04-19 17:29
2006.05.28
Transporent на канве


15-1146742658
Yeg
2006-05-04 15:37
2006.05.28
Общие сетевые ресурсы


2-1146014409
DimonS
2006-04-26 05:20
2006.05.28
MS SQL в ХР и 2000 Вмндоусе. Почему работает по разному?


2-1147403077
manevil
2006-05-12 07:04
2006.05.28
Копирование


1-1145612267
petun[-]
2006-04-21 13:37
2006.05.28
группируем несколько процедур в одну




   Наверх