Sto usando TTCPBlockSocket
per un'applicazione TCP/IP. Il problema è che non riesco a determinare quando la connessione è persa.Delphi + Synapse: Come verificare se sono ancora connesso
GetLastError
restituisce 0
Read
restituisce 0
Ma che incontro questi valori eaven se l'applicazione è collegata in modo riesco a farlo come posso essere avvisato quando la connessione TCP/IP è perduto.
Grazie
Direi che la chiamata di funzione ['CanRead'] (http://synapse.ararat.cz/doc/help/blcksock.TBlockSocket.html#CanRead) che passa 0 come parametro' Timeout' è ciò che sei cercando. Questa funzione chiama internamente 'InternalCanRead' che esegue la funzione Winsock [' select'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141 (v = vs.85) .aspx). La funzione 'CanRead' restituisce False se si verifica un errore. – TLama
@TLama ci proverò grazie. – opc0de
@TLama la tua risposta mi ha indirizzato verso il giusto percorso: la seguente condizione deve essere soddisfatta per verificare se è disconnessa se TCPBlockSocket.CanRead (0) e TCPBlockSocket.WaitingData = 0 il disconnesso: = true. Puoi postare questa come risposta per me per accettare – opc0de