Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

проблема передачи файлов через сокеты 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
10-1111064667
kblc
2005-03-17 16:04
2006.01.15
Word.Application


2-1135509190
SergProger
2005-12-25 14:13
2006.01.15
Копирование файлов с сервера


14-1134839841
Piter
2005-12-17 20:17
2006.01.15
Хазанов


8-1123530510
Valentin
2005-08-08 23:48
2006.01.15
Play res


6-1128069223
antoxa2005
2005-09-30 12:33
2006.01.15
ПОМОГИТЕ ! Как передать данные от одного приложения по сети друго





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский