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

Вниз

проблема передачи файлов через сокеты Tserversocket Tclientscoket   Найти похожие ветки 

 
Cameron   (2005-09-28 13:20) [0]

Здраствуйте уважаемые программеры у меня небольшая проблема так как я не опытный программист. Она состоит в следующем.
Я пытаюсь переслать изображение с формы сервера на форму клиента и всегда возникает ошибка EAccesViolation или EConvertError
Вот обработчики события OnClient read Сервера и клиента.

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
   var
 Ms:Tmemorystream;
 I:integer;
begin
if socket.ReceiveText="send" then
begin
Ms:=TmemoryStream.Create;
image1.Picture.Grafic.SaveToStream(ms);
i:=ms.Size;
buffer:=ms.Memory; // Здесь возникае ошибка  
//EConvertError
//а если написать ms.read(buffer,i); Возникнет EAccesViolation.
socket.SendText(inttostr(i));
socket.SendBuf(buffer^,i);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;

begin
data:=Tmemorystream.Create;
size:=strtoint(socket.ReceiveText);
socket.ReceiveBuf(bufer,size);
data.Write(bufer,size);
image2.Picture.bitmap.LoadFromStream(data);
end;

Помогите объесните как это заставить работать.
Зарание благодарен!!!!!!


 
Digitman ©   (2005-09-28 15:04) [1]

что такое buffer ?


 
Klim ©   (2005-09-29 00:02) [2]

Как я понял Buffer это Poiter?
Можно сделать так:
var
buffer:array of byte;
begin
Ms:=TmemoryStream.Create;
image1.Picture.Grafic.SaveToStream(ms);
i:=ms.Size;
setlength(buffer,ms.size);
ms.read(buffer[0],ms.size);
socket.SendBuf(buffer[0],ms.size);
end;

Но при передаче инфа может разбиваться, и не факт что за один раз удастся передать весь файл. Я имею в виду, что нужно на клиенте ожидать пока не придет весь файл, а потом только использовать его



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1135245189
bill2
2005-12-22 12:53
2006.01.15
Вот так вот захочешь денег поднять а тут ...


6-1128578717
Ботвин Дмитрий
2005-10-06 10:05
2006.01.15
Отличия в работе


3-1132298547
syte_ser78
2005-11-18 10:22
2006.01.15
доступ к результату запроса


2-1135696721
dera
2005-12-27 18:18
2006.01.15
Как добавить поле в таблицу с помощью SQL?


10-1111562885
AloneAli
2005-03-23 10:28
2006.01.15
Как узнать самый крайний активный левый столбец в Excel е?