Delphi 7 Synapse nie zmienia TimeOut.

0

Mam taki kod:

procedure GetIPThreadProc(Param : Pointer); stdcall;
var
  url, ip : string;
  DocStr : string;
  Lista : TStringList;
  I : Integer;
  HTTP : THttpSend;

s : TStream;
code : Integer;
begin
  Lista := TStringList(Param);
  url := 'http://%s/stalker_portal/c/';

  HTTP :=ThttpSend.Create;

    with HTTP do
    begin
      Protocol := '1.1';
      UserAgent := '';
      KeepAlive := True;
      TimeOut := 300;
      HTTPMethod('HEAD',Format(url, [ip]));
      Free;
    end;

Cokolwiek bym nie przydzielił TimeOut, to zawsze Synapse swoje odczeka. Czy można to jakoś zmienić? Zależy mi na krótkim Timeout. Być może istnieje inna możliwość?

0

dlaczego to jest w dziale python

0

Sorki. Nie zwróciłem uwagi. Mój błąd. Ale czekam na poradę. Chcę przeskanować trochę rzeczy, a mały timeout by mi pomógł.

0

Właściwość TimeOut nie odpowiada za to to jest maksymalny czas oczekiwania na kolejne bajty odpowiedzi serwera tobie jest potrzebne coś w stylu connecttimeout ale
http://www.ararat.cz/synapse/doku.php/public:howto:connecttimeout

0
kAzek napisał(a):

Właściwość TimeOut nie odpowiada za to to jest maksymalny czas oczekiwania na kolejne bajty odpowiedzi serwera tobie jest potrzebne coś w stylu connecttimeout ale
http://www.ararat.cz/synapse/doku.php/public:howto:connecttimeout

Chodzi mi dokładnie o zmniejszenie czasu oczekiwania na odpowiedź serwera., po upływie którego synapse rozłącza się.

1

No to tak jak w linku który podałem wyżej choć sami napisali ze to nie jest ładne rozwiązanie ale powinno działać:

      //...
      TThread.CreateAnonymousThread(procedure
      begin
        Sleep(300); //timeout
        Sock.CloseSocket;
      end).Start;
      HTTPMethod('HEAD',Format(url, [ip]));
      //...
0

Dzięki. Sprytne. Ale znalazłem coś takiego. Tylko nie wiem , co wyrzucić.

Sock.SocksTimeout:=300;
Sock.ConnectionTimeout:=300;
Sock.SetTimeout(300);
Sock.NonblockSendTimeout:=500;
Sock.NonBlockMode:=true;
TimeOut := 300;

Jest jeszcze KeepAliveTimeout.

1

Sam sobie popróbuj może ConnectionTimeout jeżeli działa tak jak ja zakładam wystarczy nie wiem to chyba jakaś nowa właściwość. Ja dawno nic nie robiłem z Synapse(wolę Indy) dawniej chyba jej nie było.

0

Tak. Wystarczy Sock.ConnectionTimeout:=300; Dzięki.
Jak zamknąć temat?

P.S.
Trzeba Synapse pobrać stąd:
https://sourceforge.net/p/synalist/code/HEAD/tree/trunk/

0
kAzek napisał(a):

Ja dawno nic nie robiłem z Synapse(wolę Indy) dawniej chyba jej nie było.

Ciekawość ;-)
Dlaczego wolisz INDY?
Wielkie, to,pseudo inteligentne, ciężko się tego dobrze nauczyć, mało wiadomo co tam się dzieje - za dużo magi.
Czyli dokładnie odwrotnie jak z Synapse, imo.

Ja odwrotnie, jeśli tylko mogę korzystam z Synapse.

0

@wloochacz dlatego, że Indy jest regularnie rozwijane i wieloplatformowe, nie ma np. problemu z obsługą GZIP, nie wiem jak teraz ale kiedyś nie było wsparcia dla multipart/form-data itd? W Synapse dopiero niedawno zapodali domyślną obsługę przekierowań. Indy jest duże i niby jak go używasz pliki wykonywalne przybierają na wadze ale to nie ma teraz wielkiego znaczenia a ma prawie wszystko a przy tym bardzo proste w użyciu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1