Sind Streams asynchron?

Status
Nicht offen für weitere Antworten.

maximilius

Mitglied
Ich wage mich erstmals an ein Projekt heran, was über Netzwerk kommunizieren soll.

Ich möchte dabei vom Programm aus an mehrere Rechner Daten schicken.
Ich habe dazu folgende Klasse entwickelt, deren Instanzen von einem Objekt in einem Vector gehalten werden:
Code:
/**
 * Erzeugt ein ObjectOutputStream und speichert die benutzte IP Adresse.
 */
private class IPObjectOutputStream {

	private ObjectOutputStream objectOutputStream;
	private Socket socket;
	private String ip;

	/**
	 * @param ip
	 *            Die IP für den ObjecktOutputStream
	 * @throws UnknownHostException
	 * @throws IOException
	 */
	public IPObjectOutputStream(String ip) throws UnknownHostException,
			IOException {
		this.ip = ip;
		socket = new Socket(ip, port);
		objectOutputStream = new ObjectOutputStream(socket
				.getOutputStream());
	}

	/**
	 * Sendet das Spielerereignis an den ObjectOutputStream.
	 * 
	 * @param spielerEreignis
	 *            Das zu sendende Spielerereignis.
	 * @throws IOException
	 */
	public void sende(ZyklusEreignisse zyklusEreignisse) throws IOException {
		objectOutputStream.writeObject(zyklusEreignisse);
	}

	/**
	 * Liefert die IP des ObjektOutputStreams.
	 * 
	 * @return Die IP des ObjektOutputStreams.
	 */
	public String getIP() {
		return ip;
	}

	/**
	 * Liefert den ObjektOutputStream.
	 * 
	 * @return Der ObjektOutputStream.
	 */
	public ObjectOutputStream getObjectOutputStream() {
		return objectOutputStream;
	}

	/**
	 * Aufräumarbeiten, bevor der garbage collector zuschlägt.
	 */
	protected void finalize() throws Throwable {
		objectOutputStream.close();
		socket.close();
	}
}

Die Klasse des Objekts, welches die Instanzen obiger Klasse in einem Vector vorhält hat folgende Methode:

Code:
/**
 * Sendet das Spielerereignis an alle Netzwerkteilnehmer.
 * 
 * @param spielerEreignis
 *            Das zu sendende Spielerereignis.
 * @throws IOException
 */
public void sende(ZyklusEreignisse zyklusEreignisse) throws IOException {
	for (IPObjectOutputStream ipObjectOutputStream : ipObjectOutputStreamVector) {
		ipObjectOutputStream.sende(zyklusEreignisse);
	}
}

Ich kenne mich mit TCP/IP nicht so aus, aber meine mal gehört zu haben, dass da so lange Pakete gesendet werden, bis die Pakete tatsächlich angekommen sind.
Stimmt das? Wenn ja:
Wenn ich nun beispielsweise 3 Empfänger im Vector habe, wird so, wie ich es konstruiert habe, dann an alle gleichzeitig gesendet, oder muss ich jedes einzelne Senden in einen eigenen Thread packen?

lg Stephan
 
G

Gast

Gast
for (IPObjectOutputStream ipObjectOutputStream : ipObjectOutputStreamVector) {
ipObjectOutputStream.sende(zyklusEreignisse);

hier wird nichts gleichzeitig gemacht, die werden alle nacheinander abgearbeitet
 

maximilius

Mitglied
@Gast
Mir ist klar, dass ich die Methode synchron aufrufe.

Meine Frage ist, ob die Methode writeObject(...) im folgenden Codeausschnitt ...
Code:
   /** 
    * Sendet das Spielerereignis an den ObjectOutputStream. 
    * 
    * @param spielerEreignis 
    *            Das zu sendende Spielerereignis. 
    * @throws IOException 
    */ 
   public void sende(ZyklusEreignisse zyklusEreignisse) throws IOException { 
      objectOutputStream.writeObject(zyklusEreignisse); 
   }
... wartet, bis das Objekt fertig versendet ist, oder ob das Versenden nur angestoßen wird und dann im Hintergrund weiterläuft, sodass das Programm weiter läuft oder ob ich hier manuell Threads anwerfen muss, um Asynchronität zu erzeugen.

lg Stephan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
berserkerdq2 Labels in IJVM sind keine lokalen Variablen oder? Allgemeine Java-Themen 2
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
W Wieviele Threads sind sinnvoll? Allgemeine Java-Themen 8
L Bewerberaufgaben sind nur Zeitverschwendung... Allgemeine Java-Themen 10
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
D Was sind Bibliotheken in Java/Pyhton? Allgemeine Java-Themen 1
F Java Installationen sind unterschiedlich Allgemeine Java-Themen 11
N Was sind Logger in Java? (bzgl. SonarLint) Allgemeine Java-Themen 3
Kaffeevertilger Warum nullable Booleans doof sind ... Allgemeine Java-Themen 22
Sogomn OOP Sind Helferklassen böse? Allgemeine Java-Themen 3
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
Bluedaishi Dateien löschen die älter als das aktuelle Datum sind Allgemeine Java-Themen 9
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
G Generics sind zu streng - oder ich zu naiv? Allgemeine Java-Themen 3
G Wie groß sind die Adressen in Java? Allgemeine Java-Themen 4
E Funktion sperren bis Unterfunktionen ferig sind Allgemeine Java-Themen 3
S Hash-Bereiche erstellen die gleichverteilt sind..? Allgemeine Java-Themen 8
L Sicherstellen das 2x die gleichen Daten unter bestimmten Keys enthalten sind. Allgemeine Java-Themen 6
S ThreadPoolExecutor: wie stelle ich fest dass meine Threads im Pool mit ihrer Arbeit fertig sind? Allgemeine Java-Themen 3
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
N URL einlesen -> Daten sind nicht vollständig bzw. korrekt Allgemeine Java-Themen 9
G Datei einlesen: Umlaute sind Fragezeichen Allgemeine Java-Themen 23
aokai Testen von Klassen die abhängig von Stdlibs URL sind Allgemeine Java-Themen 3
M Methodenaufrufe sind über Interfaces langsamer. Allgemeine Java-Themen 43
G Sind Applets noch uptodate Allgemeine Java-Themen 24
D Problem mit Tooltips und JFrame (Tooltips sind zu kurz!) Allgemeine Java-Themen 4
T Überprüfen ob zwei Farben ähnlich sind Allgemeine Java-Themen 14
G Prüfen ob Ziffern einer Zahl pandigital sind? Allgemeine Java-Themen 15
O Warten bis alle gestarteten Threads beendet sind? Allgemeine Java-Themen 6
reibi JVM fragen welche Apps geladen sind Allgemeine Java-Themen 7
M wie dateien speichern damit sie platform unabhängig sind? Allgemeine Java-Themen 2
D gewisse Zeichen sind nach dem entschlüsseln anders Allgemeine Java-Themen 2
K Wie gut sind java.util - ADTs ? Allgemeine Java-Themen 2
Bleiglanz Benchmarks sind sehr schwierig Allgemeine Java-Themen 2
P Woher weiß ein Programm wo seine Ressourcen sind? Allgemeine Java-Themen 4
U wie groß sind Verzeichnisse Allgemeine Java-Themen 11
N String überprüfen ob nur Ziffern enthalten sind!! Allgemeine Java-Themen 8
S Was sind eigentlich Java Beans? Allgemeine Java-Themen 2
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
Monokuma Lesbarkeit von Streams Allgemeine Java-Themen 6
Monokuma Foreach Schleifen in Streams umändern Allgemeine Java-Themen 23
J Streams Allgemeine Java-Themen 6
LimDul Streams und Exception Allgemeine Java-Themen 8
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
K Lesbarkeit von Streams Allgemeine Java-Themen 5
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
mihe7 Lesbarkeit von Streams Allgemeine Java-Themen 5
N Streams wann .filtern? Allgemeine Java-Themen 2
A Lambda und Streams verstehen Allgemeine Java-Themen 4
J IO Streams Allgemeine Java-Themen 13
M Wie funktionieren parallele Java Streams? Allgemeine Java-Themen 1
R Collections BiPredicate in Java 8 Streams Allgemeine Java-Themen 7
F Umgehen mit übergebenen Streams Allgemeine Java-Themen 3
hdi Überwachen des err-Streams? Allgemeine Java-Themen 8
N read streams umleiten Allgemeine Java-Themen 2
DEvent GZIP Streams und gzip Allgemeine Java-Themen 2
S Streams zusammenfügen Allgemeine Java-Themen 4
J Objekt in Datei speichern mittels Streams Allgemeine Java-Themen 6
F Double mit Streams aus Datei einlesen Allgemeine Java-Themen 3
C in Streams Allgemeine Java-Themen 4
Saxony DOS Konsole und deren Streams Allgemeine Java-Themen 5
B Probleme mit Streams Allgemeine Java-Themen 5
T Zwei Streams verbinden Allgemeine Java-Themen 3
L Die Wahl des richtigen Streams? Allgemeine Java-Themen 3
G Video Streams mit Servlets Allgemeine Java-Themen 3
P Streams per Mail mit JavaMailAPI versenden Allgemeine Java-Themen 3
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
thE_29 Problem mit Streams Allgemeine Java-Themen 6
M Asynchron Events verschicken... Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben