1. #1
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Standard 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(); }

  2. #2

    Registriert seit
    19.11.2011
    Beiträge
    496
    Thanked 412 Times in 268 Posts

    Standard AW: 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)

  3. The Following User Says Thank You to Mr. White For This Useful Post:

    uncopyable (24.04.2012)

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 23.11.2013, 01:13
  2. /m Send Bot
    Von crano im Forum Knuddels Bots
    Antworten: 1
    Letzter Beitrag: 22.09.2013, 02:37
  3. Ssl - Secure Sockets Layer
    Von uncopyable im Forum Hochsprachen
    Antworten: 1
    Letzter Beitrag: 11.03.2012, 20:02
  4. Knuddels Send text bot 2012 [by Lordbuck]
    Von Lordbuck im Forum Knuddels Bots
    Antworten: 13
    Letzter Beitrag: 13.02.2012, 16:46
  5. Frage Tan erst in einer Woche?
    Von reen im Forum Fragen & Probleme
    Antworten: 3
    Letzter 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.