Socket Socket-Thread falsch?

Zel2491

Aktives Mitglied
Huhu 🙂

Ich hab ein Problem beim Versenden einer Nachricht vom Client an den Server:

Wenn ich zum Server connecte, sollte mein Client sofort eine Nachricht an den Server übermitteln - was er aber nicht tut. Nein, er sendet die Nachricht erst dann, wenn ich vom Server disconnecte... Ich hab die Befürchtung, dass das an der falschen Verwendung des Threads liegt... hier mal mein Code:


Java:
package network;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JOptionPane;

public class Client implements Runnable {

    private Socket server;

    private DataOutputStream out;

    private String ip;

    public Client(String ip) {
        this.ip = ip;

    }

    public void run() {

        try {

            server = new Socket(this.ip, 2000);

            out = new DataOutputStream(server.getOutputStream());
            out.writeBytes("Hi :)");

            JOptionPane.showMessageDialog(null, "Verbindung hergestellt");

            try {
                Thread.sleep(10);
            } catch (InterruptedException exc) {
                exc.printStackTrace();
            }

        } catch (UnknownHostException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        } catch (IOException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        }

    }
}

Weiß da jemand weiter?

So long,

Zel
 
Den benutze ich in einem ActionEvent in einer anderen Klasse:

Java:
client = new Client(ipAdresstxt.getText());

Wenn ich auf den Button drücke, wird das ausgeführt.


Edit:

Ich hatte auch mal das hier versucht:

Java:
client = new Client(ipAdresstxt.getText());
Thread clientThread = new Thread(client);
clientThread.start();

hatte das selbe zur Folge.
 

Neue Themen


Zurück
Oben