![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Регистрация: 08.08.2007
Сообщений: 2
Репутация: 0
|
Помогите разобраться и сделать что-то подобное:
http://www.delphisources.ru/pages/fa...send_data.html Как мне переделать пример под протокол TCP, желательно с помощью TIdTCPServer и TIdTCPClient! ![]() Заранее СПАСИБО!!! |
|
|
|
| Реклама: | большие букеты цветов | французский поцелуй фильм скачать | Магазин бытовой техники: hartens телевизор - переходи на сайт ТАЙМТВ! | концерт басты в питере 2026 - redkassa.ru | карточки с озона перенести на авито |
|
|
#2
|
|
Новичок
Пол:
Регистрация: 21.07.2007
Сообщений: 8
Репутация: 2
|
Оба этих компонента умеют посылать потоки (stream). Все что нужно, это создать TFileStream от нужного файла, и отправить созданный поток.
С другой стороны примерно так же - создается файловый поток (на новый файл), и в него принимаются данные. |
|
|
|
|
|
#3
|
|
Неактивный пользователь
Регистрация: 08.08.2007
Сообщений: 2
Репутация: 0
|
Да я это знаю, в принципе я так и хочу.
У меня получилось только на TClientSocket и TServerSocket
Как уловить это в упомянутые TIdTCPServer и TIdTCPClient не знаю. SOS!!! Очень нужно... ![]() |
|
|
|
|
|
#4
|
|
Новичок
Пол:
Регистрация: 11.04.2007
Сообщений: 11
Репутация: 0
|
Клиент:
Код:
assignfile(f,extractfilename(a));
rewrite(f);
siz:= strtoint(form1.tcp.ReadLn(''));
form1.tcp.ReadBuffer(buff,siz);
blockwrite(f,buff,siz);
inc(currblk);
while siz=8192 do begin
siz:= strtoint(form1.tcp.ReadLn(''));
form1.tcp.ReadBuffer(buff,siz);
inc(currblk);
blockwrite(f,buff,siz);
if round((currblk / blocks)*100)<>cents then begin
form1.conO.Lines[form1.conO.Lines.Count-1]:=inttostr(cents)+' % Completed';
cents:=round((currblk / blocks)*100);
end;
application.ProcessMessages;
end;
closefile(f);
form1.conO.Lines.Add('Transfer complete!!!');
Код:
AssignFile(F, path);
{$I-}
Reset(F);
{$I+}
if IOResult = 0 then
begin
Sock.sendstring('Starting transfer...'#13#10);
sock.SendString(inttostr(filesize(f)div 8192)+#13#10);
numreaded:=8192;
while numreaded=8192 do begin
Blockread(f, Buff, 8192, NumReaded);
sock.SendString(inttostr(numreaded)+#13#10);
sock.SendBuffer(@buff,numreaded);
end;
CloseFile(F);
end else Sock.sendstring('File '+path+' not found!'#13#10);
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Обмен файлами по интернету. Что лучше использовать? | Mironico | Delphi | 15 | 02.08.2010 00:01 |
| BitJUMPer - обмен файлами по сети | s2dentm | Интернет и Сети | 0 | 11.08.2009 19:44 |
| Действия с файлами через базу данных | Nensi | Базы данных | 2 | 11.04.2008 12:54 |
|
|