![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с сокетами [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;