Delphi > Obecné

TTCPBlockSocket - timeout

(1/1)

Ján Masaryk:
Zdravím všetkých a prosím o radu.
Používam na TCP komunikáciu TTCPBlockSocket.
Zariadenie s ktorým komunikujem má rozdielne odozvy odpovede na jednotlivé príkazy.
Všimol som si, že pokiaľ nastavím timeout napríklad na 2 sekundy, ale zariadenie dokáže odpovedať napríklad za 0,2 sekundy, tak komunikácia skrátka trvá 2 sekundy a samozrejme keď je timeout nedostačujúci, zariadenie vyhodí chybu.
Otázka:
Dá sa nejako variabilne riadiť, aby komponent, pokiaľ dostane zo zariadenia odpoveď skôr, ako vyprší timeout pokračoval ďalej a nečakal na vypršanie timeoutu ?
Veľmi pekne ďakujem za pomoc.

Ján Masaryk:
Vyriešené použitím TTcpClient a onReceive. Komunikácia sa dramaticky zrýchlila, nakoľko sa nečaká na dobehnutie TimeOut-u.

geby:
Na timeout se čeká pouze a jen pokud nepřišla celá požadovaná data. Když třeba řekneš, že chceš přečíst 10 bytů, tak se čeká, dokud nepřijde 10 bytů.

Takže dost pravděpodobně jsi to četl blbě, ale nenapsal jsi nám, jak. Úryvek kódu by pomohl.
Číst data bez čekání pochopitelně jde. Timeout se normálně používá hlavně na řešení havarijních situací, nikoliv na bežnou věc.

Navigace

[0] Seznam témat

Přejít na plnou verzi