Ich schreibe gerade naiven Netzwerk Code für ein Projekt und ein Kumpel wies mich auf die Möglichkeit, dass, wenn ich ein Paket von Informationen vom Server an alle Clients in einer iterativen Weise senden würde ich starke Verzögerung bekommen könnte Clients reagiert nicht richtig.Blockiert ein OutputStream in Java? (Sockets)
Er ist bekannt für Trolling, also war ich skeptisch bei der Implementierung eines sekundären Threads, der jetzt verantwortlich ist, Daten an einen Client zu senden, mit einer Warteschlange, die der Server einfach die Pakete hinzufügt, die dann vom Thread gelesen wird um Daten zu senden.
Die Frage, die ich jetzt habe, nachdem ich darüber nachgedacht habe, ist Wetter oder nicht der OutputStream eines Java-Sockets reiht tatsächlich die Sachen ein, die er selbst senden möchte, wodurch die Notwendigkeit einer Warteschlange vorher beseitigt wird. Die Möglichkeit, dass schwerwiegende Probleme auftreten, tritt nur auf, wenn der Server blockiert, solange er keine Antwort von einem Client erhält, dass das gesendete Objekt empfangen wurde.
Danke.
Ich bin in ein ähnliches Problem geraten, wenn ich versuche, den Ausgangs- oder Eingabestrom in der Lauffunktion eines Threads zu erhalten.Das Problem mit der Blockierung (für getInputStream und getOutputStream) des Sockets liegt darin, dass es sich in der run-Funktion befindet ... die Lösung scheint darin zu bestehen, es in den Konstruktor zu stellen, die Variable zu speichern und dann auf die Variable im run zu verweisen. – Zimm3r