Socket Thread in Schleife

Sc0rP1En

Mitglied
Hallo Forum,

habe zu meiner Frage leider nichts gefunden, werder hier, noch bei Google.

Ich habe eine while-Schleife in der über RXTX Daten ausgelesen werden. Nun würde ich diese Daten gerne mittels Sockets verschicken. Ich habe es so gelöst:

Java:
while ( ( len = in.read(buffer)) > -1 )
				{
…
Datenübertragung data = new Datenübertragung(_north,_east);
						data.start();
…
}

Datenübertragungsklasse
Java:
public class Datenübertragung extends Thread {
	
	double _north;
	double _east;
	
public Datenübertragung(double north, double east) {
	// TODO Auto-generated constructor stub
	this._north=north;
	this._east=east;
}
	
public void run()
{
	
		try {
			
			Socket client = new Socket (hostname,portnumber);
			DataOutputStream output = new DataOutputStream(client.getOutputStream());
			InetAddress address = client.getInetAddress();
			String dataString = new Date()+";"+address.getHostName()+";"+_north+";"+_east+"\n";
			output.writeBytes(dataString);
			output.flush();
			client.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Ist das richtig gelöst oder bekomme ich hier irgendwann Performanceproblemen da in der While ständig die Klasse in einem Thread geöffnet wird? Funktionieren tut es!
Ich hoffe ich stelle mich nicht allzu dumm an. :)

Danke für eure Hilfe

Greets
Sc0rP1En
 

Michael...

Top Contributor
Wenn, dann sollte die while-Schleife wohl eher in der run() des Threads laufen. So wie es jetzt ist baust jedesmal eine neue Verbindung auf.
Ausserdem sollen ja - wenn ich das richtig verstehe - die eingelesenen Daten letztendlich über diese Verbindung verschickt werden. Mit Deinem Vorgehen ist nicht gewährleistet, dass die Daten in der selben Reihenfolge in der Sie eingelesen werden auch beim Gegenüber ankommen.
 

Sc0rP1En

Mitglied
Danke für deine Antwort.

D.h. ich soll ein Thread machen mit der Socketclass und in dieser Socketclass sollen dann die Daten der Schnittstelle ausgelesen werden um diese dann zu verschicken?

Soll ich das Auslesen auch in einem eigenen Thread machen lassen oder ohne eigenen Thread?

Greets
Sc0rP1En
 

Michael...

Top Contributor
Du kannst ja den InputStream oder was auch immer hinter in steckt, dem Thread übergeben. Dieser baut in der run() die Socketverbindung auf, liest die Daten in der while-Schleife ein und schreibst die eingelesenen Bytes sofort über den OutputStream wieder raus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Thread und Ratelimiter Netzwerkprogrammierung 4
F Thread "extern" beenden Netzwerkprogrammierung 3
OnDemand Linux RAM per Thread Netzwerkprogrammierung 3
V Socket Audio Clip loopen ohne neuen Thread Netzwerkprogrammierung 2
C Thread Netzwerkprogrammierung 9
platofan23 Socket Hilfe mit Socket Thread und ArrayList Netzwerkprogrammierung 6
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
S Socket ThreadPool oder Thread pro Client? Netzwerkprogrammierung 11
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
P Wie spreche ich einen Thread an? Netzwerkprogrammierung 20
M Thread Scheduler Java 5.0? Netzwerkprogrammierung 2
7 Mehrere Verbindungen gleichzeitig in einem Thread mit ApacheHTTP Netzwerkprogrammierung 7
D Socket Dynamische Socket-Thread Erzeugung Netzwerkprogrammierung 2
B Socket Thread handling / Reader init Netzwerkprogrammierung 8
Z Socket Socket-Thread falsch? Netzwerkprogrammierung 5
Helgon Socket Thread Pooling Netzwerkprogrammierung 6
M Was macht Thread, wenn er aus einem "leeren" Inputstream liest ? Netzwerkprogrammierung 5
B callback thread udp Netzwerkprogrammierung 2
D RMI und Thread Netzwerkprogrammierung 4
S Kommunikationsproblem, Thread und manuel Netzwerkprogrammierung 4
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
K ein Thread pro Stream Netzwerkprogrammierung 2
D Weiterer Thread auf Port 843 horcht Netzwerkprogrammierung 7
D Thread problem Netzwerkprogrammierung 3
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
S Thread Transport Netzwerkprogrammierung 6
G Objekte per TCP verschicken + Thread Netzwerkprogrammierung 4
T synchronized mit thread und rückgabe Netzwerkprogrammierung 4
Q Thread und Sockets... Netzwerkprogrammierung 2
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
PAX Outputstream von anderem Thread verwenden lassen Netzwerkprogrammierung 5
C Server mit Multithreading (Thread-Pool) Netzwerkprogrammierung 2
E java.lang.NullPointerException aber nur wenns im Thread läuf Netzwerkprogrammierung 4
F EIN Thread in RMI auf Serverseite Netzwerkprogrammierung 3
G Server Thread beenden Netzwerkprogrammierung 16
T Socket-Thread: Designfrage Netzwerkprogrammierung 14
S Mit Thread arbeitende Maschine Netzwerkprogrammierung 6
T select() ohne NIO - oder wie Worker-Thread sauber beenden? Netzwerkprogrammierung 9
K Selbe Streams mehrfach nutzen (zusätl. Thread) Netzwerkprogrammierung 6
ven000m Thread Frage Netzwerkprogrammierung 11
B Thread.start() (run()) excption Netzwerkprogrammierung 2
M Thread läuft nicht weiter Netzwerkprogrammierung 2
B NullPointerException | Thread Netzwerkprogrammierung 4
U Current thread not owner Netzwerkprogrammierung 3
S readline-thread stoppt vorzeitig Netzwerkprogrammierung 6
J RMI - (RemoteException occurred in server thread) Netzwerkprogrammierung 2
S Webserverprogrammierung: Thread-Beschränkung Netzwerkprogrammierung 2
M Exception in thread "main" java.lang.NoClassDefFou Netzwerkprogrammierung 2
F problem mit thread bzw. netzwerkverbindung! Netzwerkprogrammierung 3
L netzwerk mit thread Netzwerkprogrammierung 3
G RMI thread safe ? Netzwerkprogrammierung 11
A Thread gibt Nachrichten mehrmals aus (Messenger in Java) Netzwerkprogrammierung 3
x46 Byte-Array per for-Schleife schicken Netzwerkprogrammierung 1
K Socket byte Schleife beendet nicht Netzwerkprogrammierung 9
D Strings per Schleife zum Client senden Netzwerkprogrammierung 4
M while-Schleife funktioniert nicht bei Nachrichtempfang von Server Netzwerkprogrammierung 3
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
Y server mit endlosse schleife beenden Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben