Attualmente sto scrivendo codice di rete naive per un progetto e un compagno mi ha accennato alla possibilità che quando invio un pacchetto di informazioni dal server a tutti i client in modo iterativo, potrei ottenere un lag intenso quando uno dei i clienti non rispondono correttamente.È un OutputStream nel blocco di Java? (Prese)
È noto per il trolling, quindi ero un po 'scettico quando implementavo un thread secondario che ora è responsabile di inviare dati a un client, avendo una coda che il server aggiunge semplicemente i pacchetti su quella che viene poi letta dal thread per inviare dati.
La domanda che ora ho dopo averci pensato su è tempo o non OutputStream di un Socket Java in realtà mette in coda la roba che vuole inviare da solo, eliminando così la necessità di una coda in anticipo. La possibilità di avere problemi intensi si verifica solo quando il server sta bloccando finché non riceve una risposta da un client che l'oggetto inviato è stato ricevuto.
Grazie.
Ho riscontrato un problema simile se si tenta di ottenere l'output o il flusso di input nella funzione di esecuzione di una discussione.Il problema con il blocco (sia per getInputStream che per getOutputStream) del socket è perché è nella funzione di esecuzione ... la soluzione sembra essere quella di inserirla nel costruttore, salvare la variabile e quindi fare riferimento alla variabile in esecuzione. – Zimm3r