![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать тоже самое только под в Delphi 3
Piero © (2005-09-19 15:34:00)Нужно переделать программу приема - передачи для Delphi 3, в 6й Delphi это работает, а как переделать для 3-й, какими компонентами надо пользоваться? TTCP или еще как-то?
//Это прием
var i : integer;
m : byte;
a : byte;
b : array [0..10000] of byte;
ttmp: file of byte;
t1 : file of byte;
begin
try
checkfile(FilenameEdit1.Text);
assignfile(t1,FilenameEdit1.Text);
reset(t1);
seek(t1,filesize(t1));
m:=Socket.ReceiveLength;
if m=0 then begin closefile(t1); exit; end;
Memo1.Lines.add('<--- Принято '+inttostr(m)+' байт');
for i := 0 to m do
begin
socket.ReceiveBuf(a,1);
b[i]:=a;
write(t1,a);
end;
closefile(t1);
except
Memo1.Lines.add('Ошибка при приеме данных');
end;
end;
// Передача
var b : array [0..10000] of byte;
i : integer;
by : char;
t2 : file of byte;
begin
if not fileexists(FilenameEdit2.Text) then
begin
Memo1.Lines.add('# Файл вых. данных не готов для чтения');
exit;
end;
try
assignfile(t2,FilenameEdit2.Text);
reset(t2);
seek(t2,0);
i:=0;
while not eof(t2) do
begin
read(t2,b[i]);
i:=i+1;
end; //while
closefile(t2);
clientSocket1.Open;
clientSocket1.Socket.SendBuf(b,i);
memo1.Lines.Add('---> Отправленно '+inttostr(i)+' байт');
except
Memo1.Lines.add('# Ошибка при передаче данных');
end;
end;
------------------------------------------------------------
и еще вопрос если делать так:
clientSocket1.Open;
clientSocket1.Socket.SendBuf(b,i);
clientSocket1.close;
то данные не успевают передаться, до того как clientSocket1 закроется, как сделать так что бы он закрывался после передачи, ведь специального свойства нет.
Piero (2005-09-20 15:41:00) [1]а можно где нибудь достать эти компаненты ?
Чапаев (2005-09-19 16:47:00) [2]TClientSocket|TServerSocket
Есть только в версии клиент-сервер.