Witam moim problemem jest wysylanie wiadomosci na serwer uzywajac przy tym klasy podanej ponizej.
Wysylanie wiadomosci polega ( mowie tu o czesci kodu ktorego nie dolaczylem ) na ustawieniu
przy pomocy funkcji setAction(int a) zmiennej action na wartosc 1 oraz ustawieniu wiadomosci do wyslania za pomoca setMessage(String m). Utworzony watek SendingThread sprawdza czy zmienna action jest ustawiona na wartosc 1 i jesli tak jest to wysyla wiadomosc. Zauwazylem tutaj ze warunek jest sprawdzany ( i tym samym wiadomosc zostaje wyslana ) tylko wtedy gdy przed petla while(isConnected()) obiektu SendingThread dopisze jakas instrukcje np System.out.println("Jakis tekst"); . Prosze o wyrozumialosc jesli rozwiazanie jest oczywiste ( dopiero zaczynam przygode z jezykiem Java ) ;-)

public class ClientHandler
{
    private Socket socket;

    private InputStream inStream;
    private OutputStream outStream;

    private PrintWriter writer;
    private BufferedReader reader;

    private boolean connectionStatus;
    private User client;

    private int action;
    private String message;

    ClientHandler(String name)
    {
        try
        {
            /* Creating new User */
            client = new User(name);

            /* Connecting to the server */
            socket = new Socket("localhost",2004);

            /* Creating in/out streams */
            inStream = socket.getInputStream();
            outStream = socket.getOutputStream();

            /* Creating objects for sending and receiving data */
            writer = new PrintWriter(outStream);
            reader = new BufferedReader(new InputStreamReader(inStream));

            connectionStatus = true;
            action = 0;
            
            /* Creating sendingThread responsible for sending messages to other users */
            SendingThread sendingThread = new SendingThread();
            Thread t = new Thread(sendingThread);
            t.start();

            /* Creating receivingThread responsible for receiving messages from other users */
            ReceivingThread receivingThread = new ReceivingThread();
            Thread r = new Thread(receivingThread);
            r.start();
        }
        catch(UnknownHostException e)
        {
            System.out.println("ERROR : "+e.getLocalizedMessage());
        }
        catch(IOException e)
        {
            System.out.println("ERROR : "+e.getLocalizedMessage());
        }
    }

    public void setStatus(boolean s)
    {
        connectionStatus = s;
    }

    public boolean isConnected()
    {
        return connectionStatus;
    }

    public void setMessage(String m)
    {
        System.out.println("Message : "+m);
        message = m;
    }

    public void setAction(int a)
    {
        System.out.println("There is one message to send");
        action = a;
    }

    private class SendingThread implements Runnable
    {
        SendingThread()
        {

        }

        public void sendMessage()
        {
            writer.println("<"+client.getName()+">"+" "+message+"\n");
            writer.flush();
            message = "";
        }
        
        public void run()
        {
            while(isConnected())
            {
                if(action == 1)
                {
                    sendMessage();
                    setAction(0);
                }
            }
        }
    }

    private class ReceivingThread implements Runnable
    {
        ReceivingThread()
        {

        }

        public void run()
        {
            while(isConnected())
            {
                
            }
        }
    }

    private class User
    {
        String name;

        User(String n)
        {
            name = n;
        }

        public String getName()
        {
            return name;
        }

        public void changeName(String n)
        {
            name = n;
        }
    }
}

Powyzszy post byl moj ( mozna sie domyslic po nicku ). Chcialem jeszcze dodac iz kwestia uzycia tu klasy PrintWriter napewno nie jest powodem problemu ( wiem ze nie powinno jej sie uzywac w takich aplikacjach aczkolwiek dpiero to zmienie ) gdyz uzywanie funkcji sendMessage() bez sprawdzania warunku dzial :)