E
EvilKneeWill
Gast
Hallo zusammen,
ich habe ein kleines, nicht nachvollziehbares Problem.
Eigentlich will ich lediglich ein paar Daten übers Netzwerk an einen Server schicken. Das versenden selbst geschieht innerhalb eines Threads, so die Idee!
Wenn ich die folgenden Codezeilen ohne einen Thread ablaufen lasse, dann bekomme ich am Server auch die Daten übertragen (mittels System.out.println() gebe ich mir die Debug-Infos raus). Packe ich nun den gleichen Code in einen Thread, lass diesen Starten so wird der Thread auch ordentlich abgewickelt, der Server bekommt auch mit das eine Verbindung hergestellt wurde, aber die Daten bleiben aus - und dies ist der Punkt den ich nicht nachvollziehen kann.
Kann mir da vielleicht wer Tipps geben?
PS: Server + Client laufen @mom auf den gleichen Rechner (also localhost)
Ohne Thread = funktionierend
Mit Thread = nicht funktionierend (ich erzeuge im main() dann eine Instanz der Klasse)
ich habe ein kleines, nicht nachvollziehbares Problem.
Eigentlich will ich lediglich ein paar Daten übers Netzwerk an einen Server schicken. Das versenden selbst geschieht innerhalb eines Threads, so die Idee!
Wenn ich die folgenden Codezeilen ohne einen Thread ablaufen lasse, dann bekomme ich am Server auch die Daten übertragen (mittels System.out.println() gebe ich mir die Debug-Infos raus). Packe ich nun den gleichen Code in einen Thread, lass diesen Starten so wird der Thread auch ordentlich abgewickelt, der Server bekommt auch mit das eine Verbindung hergestellt wurde, aber die Daten bleiben aus - und dies ist der Punkt den ich nicht nachvollziehen kann.
Kann mir da vielleicht wer Tipps geben?
PS: Server + Client laufen @mom auf den gleichen Rechner (also localhost)
Ohne Thread = funktionierend
Code:
try {
InetAddress addr = InetAddress.getLocalHost();
Socket socket = new Socket(addr, 2128);
PrintWriter wr = new PrintWriter(socket.getOutputStream(), true);
wr.write("bla");
wr.flush();
} catch (IOException e) {
System.out.println(e);
}
Mit Thread = nicht funktionierend (ich erzeuge im main() dann eine Instanz der Klasse)
Code:
public class DatabaseSyncronisation implements Runnable {
private InetAddress addr;
private Socket socket;
public DatabaseSyncronisation() {
Thread thread = new Thread(this);
thread.start();
}
public void run() {
try {
addr = InetAddress.getLocalHost();
socket = new Socket(addr, 2128);
PrintWriter wr = new PrintWriter(socket.getOutputStream(), true);
wr.write("bla");
wr.flush();
} catch (IOException e) {
System.out.println(e);
}
}
}