Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    implementare timeout nel client

    Ragazzi come posso implementare un client che possa essere interrotto o stoppato solo dopo avere ricevuto la risposta dal server o solo dopo un timeout di 2 minuti?
    Grazie

  2. #2

    Moderazione

    Difficile dirlo se non specifichi con che linguaggio e che librerie stai lavorando...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    si hai ragione scusami. Il linguaggio è il c e lavoro su linux

  4. #4
    Aggiunto al titolo come "tag", in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    ok grazie e scusami se non l'ho ricordato di farlo io direttamente

  6. #6
    Comunque, il timeout che vuoi mettere è sulla connect (=il server potrebbe non essere in linea) o sulla read (=il server è collegato ma non fornisce dati)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    veramente questo non viene specificato nel testo ora che vedo...lo implementerei in entrambi così gestisco entrambe le possibilità

  8. #8
    In entrambi i casi, l'approccio più classico è usare socket non bloccanti in combinazione con la syscall select.
    Crei il socket, lo imposti come non bloccante con una fcntl, chiami la connect; questa restituisce immediatamente anche se il socket non è ancora stato collegato. A questo punto, chiami la select passandole il fd del socket (come fd su cui attendere in scrittura) e il timeout; questa aspetta che il socket venga collegato o che trascorra il timeout. In base al valore restituito vedi se si è connesso oppure è scaduto il timeout. Stesso discorso per le read.
    Consiglio: leggiti attentamente la manpage di select e cerca in giro indicazioni sull'IO non bloccante su sistemi Unix.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    scusami la domanda,magari stupida, in questo modo rispondo alla richiesta di un client che si sospende o si interrompe dopo un timeout, e nell'altro caso quando invece si deve interrompere o sospendere dopo aver ricevuto risposta dal server? questa parte non mi è chiara...

  10. #10
    Eh?
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.