![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Клиент сервер и мемори стрим [D7, XP]
Fl@sh © (2006-05-10 15:42:00)Уважаемые мастера.
Работаю с клиент-сервером.
Нужно передать 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:00) [1]Странно... Неужели никто не сталкивался с данным вопросом