Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > передача файла по TCP (компоненты Indy)


Автор: RF204 28.1.2010, 15:09
Здравствуйте, уважаемые друзья. Прошу вашей помощи.

Решил написать программу, передающую файлы по протоколу TCP. Состоит из сервера и клиента. Передается рисунок bmp.

Код сервера:

Код

procedure TForm1.IDSrvExecute(AThread:TIdPeer Thread);
var
s:string;
F:TFilestream;
const
Path='C:\Program Files\Common Files\Borland Shared\Images\Splash\16Color';
begin
S:=AThread.Connection.Readln;
F:=TFileStream.Create(Path+S,FmOpen Read);
AThread.Connection.OpenWriteBuffer;
AThread.Connection.WriteStream(F);
AThread.Connection.CloseWriteBuffer ;
AThread.Connection.Disconnect;
end;
end.


Код клиента:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
F:TFileStream;
begin
IDCli.Connect;
IDCli.WriteLn(cbFile.Items[cbFile.ItemIndex]);
F:=TFileStream.Create('temp.bmp', fmCreate);
IDCli.ReadStream(F,-1,True);
F.Free;
Image1.Picture.LoadFromFile('temp.b mp');
IDCli.Disconnect;
DeleteFile('temp.bmp');
end;

end.


Так вот в чем моя проблема: к серваку коннектится, все отлично, но возникает ошибка 10053 и пишет что происходит принудительный разрыв соединения. А вот этот файл temp.bmp появляется в папке с клиентом, но при попытке его просмотра вылезает сообщение "файл не является правильным рисунком bmp". Не подскажете, в чем моя ошибка и как это исправить?
Заранее благодарен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)