uncopyable (24.04.2012)
-
22.04.2012, 19:45 #1
Sockets: send wird erst zu Programmende ausgeführt
Abend
Ich hab ein Problem beim senden und zwar wird meine Nachrichten erst gesendet nachdem ich das Applet beendet hab.
Hier mal mein Code
PHP-Code:import javax.swing.JApplet;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.Socket;
import java.net.URL;
import java.net.UnknownHostException;
public class TestApplet extends JApplet implements Runnable {
private Thread thread;
private Socket socket;
private DataInputStream in;
private PrintStream out;
public void init() {
// Komponenten laden ...
}
@Override
public void start() {
connect();
}
private void print(String msg) {
System.out.println(msg);
}
private void connect() {
try {
socket = new Socket(this.getCodeBase().getHost(), 8000);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
if (socket.isConnected()) {
send("Hallo?");
if (thread == null) {
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}
} catch (IOException ex) {
print(e.getMessage());
}
}
@Override
public void stop() {
try {
socket.close();
} catch (IOException e) {
print(e.getMessage());
}
if ((thread !=null) && thread.isAlive()) {
thread.stop();
thread = null;
}
}
@Override
public void destroy() {
System.exit(0); // Applet muss signiert sein!
}
private void send(String message) {
if (socket != null && socket.isConnected()) {
try {
out.write(message.getBytes("UTF8"));
out.flush();
} catch (IOException e) {
print(e.getMessage());
}
}
}
@Override
public void run() {
String line;
try {
line = in.readLine();
if(line!=null)
print(line+'\n' );
} catch (Exception e) {
print(e.getMessage());
}
}
}
while( behappy() ) { code(); }
-
23.04.2012, 22:59 #2
- Registriert seit
- 19.11.2011
- Beiträge
- 496
Thanked 412 Times in 268 PostsAW: Sockets: send wird erst zu Programmende ausgeführt
Bist du dir sicher, dass die Nachricht erst beim Beenden des Applets gesendet wird?
Vielleicht denkst du das nur, weil du höchstens eine Nachricht zurückbekommst pro gestartetem Thread. Dein Lesevorgang in der run()-Methode wird nur einmal ausgeführt. Eine (Endlos-)Schleife drum und dann mal starten...
Den Thread sollte wohl besser initialisiert und gestartet werden, bevor du was verschickst.Geändert von Mr. White (23.04.2012 um 23:33 Uhr)
-
The Following User Says Thank You to Mr. White For This Useful Post:
Ähnliche Themen
-
JButton erst nach Sekunden wieder true setzten
Von Pyromane im Forum JavaAntworten: 2Letzter Beitrag: 23.11.2013, 01:13 -
/m Send Bot
Von crano im Forum Knuddels BotsAntworten: 1Letzter Beitrag: 22.09.2013, 02:37 -
Ssl - Secure Sockets Layer
Von uncopyable im Forum HochsprachenAntworten: 1Letzter Beitrag: 11.03.2012, 20:02 -
Knuddels Send text bot 2012 [by Lordbuck]
Von Lordbuck im Forum Knuddels BotsAntworten: 13Letzter Beitrag: 13.02.2012, 16:46 -
Frage Tan erst in einer Woche?
Von reen im Forum Fragen & ProblemeAntworten: 3Letzter Beitrag: 10.02.2012, 19:54
Stichworte
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.