Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Вниз

Снова АнтиФриз(InDy) 


karafuto   (2001-10-16 17:13) [0]

Прочитал в форуме про ИнДи, что в версии 8.0 Антифриз не работал, а в версии 9.0 должен.
Использую версию 9.0.2-В ни ничего не получается. Где ещё спросить?



Ketmar   (2001-10-17 05:43) [1]

что в инди8, что в инди9 - антифриз работал, как написано. проверено с idhttp, idftp (кажись, про фтп не помню).

Satanas Nobiscum!



karafuto   (2001-10-17 10:03) [2]

Может, я что не так делаю(в смысле дурак):
Есть клиент с TIdTCPClient
Там же есть TIdAntiFreeze
Когда выполняется WriteStream(src) (а src ~ 7M), клиент "замерзает".




nikkie   (2001-10-17 10:18) [3]

>Прочитал в форуме про ИнДи
в каком форуме? в этом форуме только ты писал о каких-то проблемах. если в каком другом - дай ссылку.

есть ощущение, что это проблемы твои, а не антифриза. налицо какая-то путаница с клиентом-сервером. есть куча примеров с антифризом, например, FTPDemo. что они не работают? давай конкретный пример.

исходный вопрос
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1002794455&n=4



karafuto   (2001-10-17 10:34) [4]

2 nikkie : Можно проекты намылить?



nikkie   (2001-10-17 10:38) [5]

давай.



nikkie   (2001-10-17 11:18) [6]

написал сам тестовый примерчик. действительно, использование антифриза с WriteStream не дает эффекта, если OnlyWhenIdle = True. если выставить OnlyWhenIdle = False - все в порядке.



karafuto   (2001-10-17 11:23) [7]

2 nikkie : Если ты получил мой примерчик, то там OnlyWhenIdle = False.
Пробовал я и True - разницы никакой



nikkie   (2001-10-17 15:01) [8]

какой-то бардак у меня с почтой творится. получил только что твое письмо - в нем только подпись. пару часов назад сам себе пустое письмо отправлял - до сих пор нет. :(

короче, вот мой пример.



nikkie   (2001-10-17 15:02) [9]

КЛИЕНТ

type
TForm1 = class(TForm)
TCPClient: TIdTCPClient;
bnSend: TButton;
OpenDialog: TOpenDialog;
IdAntiFreeze1: TIdAntiFreeze;
procedure bnSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

procedure TForm1.bnSendClick(Sender: TObject);
var
Stream : TFileStream;
begin
if OpenDialog.Execute then begin
Stream := TFileStream.Create(OpenDialog.FileName, fmOpenRead);
try
TCPClient.Connect;
TCPClient.WriteStream(Stream);
TCPClient.Disconnect;
ShowMessage("Done");
finally
Stream.Free;
end;
end;
end;



nikkie   (2001-10-17 15:03) [10]

СЕРВЕР

type
TForm1 = class(TForm)
TCPServer: TIdTCPServer;
procedure TCPServerConnect(AThread: TIdPeerThread);
private
{ Private declarations }
public
{ Public declarations }
end;

procedure TForm1.TCPServerConnect(AThread: TIdPeerThread);
var
Stream : TFileStream;
const
FileName = "received.dat";
begin
try
Stream := TFileStream.Create(FileName, fmCreate);
try
AThread.Connection.ReadStream(Stream, -1, True);
finally
Stream.Free;
end;
except
on E : Exception do
ShowMessage(E.Message);
end;
end;



karafuto   (2001-10-17 19:05) [11]

2 nikkie :
В наших примерах почти нет различий, за исключением
//! OpenWriteBuffer;
WriteStream(src);
//! CloseWriteBuffer;
Я убрал их из кода, и Антифриз стал работать.
Зачем нужны эти OpenWriteBuffer и CloseWriteBuffer я пока не разобрался.
Спасибо за помощь.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.029 c
1-28488           ilysha                2001-12-20 10:00  2002.01.10  
В дочерних окнах из DLL не работают


1-28471           XPatriot              2001-12-21 14:50  2002.01.10  
Работа с файлами.


3-28407           urii                  2001-12-06 10:35  2002.01.10  
Вопрос по таблице Paradox


3-28403           Скалли                2001-12-07 10:23  2002.01.10  
Редактирование поля типа Date (дата+время)


1-28487           grab                  2001-12-19 19:47  2002.01.10  
крутой вопрос про форматирование текста:-)