BitTorrent: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 146:
Announce risponde con una stringa ([[MIME]] [[text/plain]]). Le eventuali condizioni di errore '''non''' possono essere comunicate con i [[HTTP|codici di stato HTTP]]. La stringa rappresenta un dizionario con i seguenti elementi:
 
*'''failure reason'''(stringa): se presente, rappresenta la condizione di errore in formato [[human-readable]]. In presenza di ''failure reason'' non devono essere presenti ulteriori elementi
*''warning message''(stringa): rappresenta una condizione di allerta in formato human-readable. L'elaborazione della risposta di Announce non viene interrotta e all'utente viene mostrato un messaggio descrittivo
*''min interval''(intero): tempo minimo in secondi che deve trascorrere tra due richieste Announce, pena il rifiuto da parte del server
*''interval''(intero): tempo in secondi da raccomandare al client per gli intervalli tra gli aggiornamenti Announce, al fine di non sovraccaricare il server.
Deve essere compreso tra il valore di ''min interval'' e il [[time-out]] per la sconnessione forzata dei peer morti
*''tracker id''(stringa): una stringa che identifichi univocamente il tracker.
*''complete''(intero): seeder attualmente connessi (utile se il numero di peer connessi supera di molto il limite di risposta)
*''incomplete''(intero): leecher attualmente connessi (utile se il numero di peer connessi supera di molto il limite di risposta)
Se il client utilizza il ''Compact Announce''
*'''peers'''(stringa): ogni peer occupa 6 byte in questa stringa. I primi 4 rappresentano l'indirizzo IP in formato numerico, e gli altri 2 la porta.
I peer sono concatenati tra di loro in ordine di rete.
Se il client non utilizza il ''Compact Announce''
*'''peers'''(lista): lista di dizionari, ciascuno dei quali contiene informazioni sul peer
:*(dizionario): contiene i dati necessari a identificare e contattare un peer
::*'''peer id'''(stringa): il valore arbitrario che il peer ha fornito in fase di connessione
::*'''ip'''(stringa): l'[[indirizzo IP]] in formato [[IPv4]], [[IPv6]] o [[DNS]]
::*'''port'''(intero): numero di porta usato dal peer
 
Per convenzione il numero massimo di peer forniti durante un'interrogazione di Announce non dovrebbe superare i 50.