![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Снова АнтиФриз(InDy)
karafuto © (2001-10-16 17:13:00)Прочитал в форуме про ИнДи, что в версии 8.0 Антифриз не работал, а в версии 9.0 должен.
Использую версию 9.0.2-В ни ничего не получается. Где ещё спросить?
karafuto (2001-10-17 19:05:00) [1]2 nikkie :
В наших примерах почти нет различий, за исключением
//! OpenWriteBuffer;
WriteStream(src);
//! CloseWriteBuffer;
Я убрал их из кода, и Антифриз стал работать.
Зачем нужны эти OpenWriteBuffer и CloseWriteBuffer я пока не разобрался.
Спасибо за помощь.
nikkie (2001-10-17 15:03:00) [2]СЕРВЕР
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;
nikkie (2001-10-17 15:02:00) [3]КЛИЕНТ
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:01:00) [4]какой-то бардак у меня с почтой творится. получил только что твое письмо - в нем только подпись. пару часов назад сам себе пустое письмо отправлял - до сих пор нет. :(
короче, вот мой пример.
karafuto (2001-10-17 11:23:00) [5]2 nikkie : Если ты получил мой примерчик, то там OnlyWhenIdle = False.
Пробовал я и True - разницы никакой
nikkie (2001-10-17 11:18:00) [6]написал сам тестовый примерчик. действительно, использование антифриза с WriteStream не дает эффекта, если OnlyWhenIdle = True. если выставить OnlyWhenIdle = False - все в порядке.
nikkie (2001-10-17 10:38:00) [7]давай.
karafuto (2001-10-17 10:34:00) [8]2 nikkie : Можно проекты намылить?
nikkie (2001-10-17 10:18:00) [9]>Прочитал в форуме про ИнДи
в каком форуме? в этом форуме только ты писал о каких-то проблемах. если в каком другом - дай ссылку.
есть ощущение, что это проблемы твои, а не антифриза. налицо какая-то путаница с клиентом-сервером. есть куча примеров с антифризом, например, FTPDemo. что они не работают? давай конкретный пример.
исходный вопрос
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1002794455&n=4
karafuto (2001-10-17 10:03:00) [10]Может, я что не так делаю(в смысле дурак):
Есть клиент с TIdTCPClient
Там же есть TIdAntiFreeze
Когда выполняется WriteStream(src) (а src ~ 7M), клиент "замерзает".
Ketmar (2001-10-17 05:43:00) [11]что в инди8, что в инди9 - антифриз работал, как написано. проверено с idhttp, idftp (кажись, про фтп не помню).
Satanas Nobiscum!