Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с сокетами [D5, XP]


WhiteWolf ©   (2007-03-23 09:44:00) 

Помогите найти ошибку
{Отправка файла через сокет}
procedure SendFileBySocket(filename: string);
var srcfile: TFileStream; begin
srcfile := TFileStream.Create(filename,fmOpenRead);
ServerSocket1.Socket.Connections[0].SendStream(srcfile);
srcfile.Free; end;

{Прием файла через сокет}
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket); var l: Integer; buf: PChar; src: TFileStream; begin
l := Socket.ReceiveLength;
GetMem(buf,l+1);
Socket.ReceiveBuf(buf,l);
src := TFileStream.Create('myfile.tmp',fmOpenReadWrite);
src.Seek(0,soFromEnd);
src.WriteBuffer(buf,l);
src.Free;
FreeMem(buf);
end;


Alex2000   (2007-03-23 11:47:00) [1]

Сходи по ссылке WWW.Delphi-secret.narod.ru/Projects/ServClient.rar .Там класный исходняк .


Сергей М.   (2007-03-23 11:09:00) [2]

А у меня работает.
Что я неправильно делаю ?)


WhiteWolf   (2007-03-23 11:06:00) [3]

Всёравно не вига не передаёт


Сергей М.   (2007-03-23 10:23:00) [4]

procedure SendFileBySocket(filename: string);
var
 srcfile: TStream;
begin
 srcfile := TFileStream.Create(filename,fmOpenRead);
 ServerSocket1.Socket.Connections[0].SendStream(srcfile);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
 l: Integer;
 buf: PChar;
 src: TStream;
begin
 l := Socket.ReceiveLength;
 if i = 0 then Exit;
 GetMem(buf,l);
 try
   l := Socket.ReceiveBuf(buf^,l);
   if l = 0 then Exit;
   src := TFileStream.Create('myfile.tmp',fmOpenReadWrite);
   try
     src.Seek(0,soFromEnd);
     src.WriteBuffer(buf^,l);
   finally
     src.Free;
   end;
 finally
   FreeMem(buf);
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо