witam,mam problem jak w temacie, mianowicie 2óch klientów podlacza sie do serwera i wysyla miedzu soba wiadomosci, niby dziala, ale wiadomosci nie dochodza :( zamieszczam kod, prosze o pomoc

import java.io.Serializable;


public class Pakiet implements Serializable{
	String s;
	Boolean gracz=true;
	Boolean koniec=false;
	
	 public Pakiet(String s, Boolean gracz,Boolean koniec){
		 this.s=s;
		 this.gracz=gracz;
		 this.koniec=koniec;
	 }
	public String toString() {
		return super.toString() + " s = " + s + " gracz = " + gracz;
		}
}


import java.io.*;
import java.net.*;


public class Serwer {

	private ServerSocket Serwer;
	private Socket[] klient = new Socket[2];
	private int aktualnyGracz = 1;
	Pakiet pakiet= new Pakiet(null,false,false);
	private boolean koniec = false;

	public Serwer() {

		try {
			this.Serwer = new ServerSocket(3333);
			System.out.println("Uruchomiono serwer...");
			for (int nr = 0; nr < 2; nr++) {
				klient[nr] = Serwer.accept();
				System.out.println("Przylaczyl sie gracz nr " + (nr + 1));
				klient[nr].getOutputStream().write(nr + 1);
				System.out.println("Klient nr" + (nr + 1) + " : " + klient[nr]);
			}
			while(!koniec) {
				ObjectInputStream wejscie = new ObjectInputStream(
						klient[aktualnyGracz - 1].getInputStream());
				pakiet =  (Pakiet) wejscie.readObject();
				System.out.println("ODEBRANO paczke od " + aktualnyGracz);
				System.out.println(pakiet.s);
				if (pakiet.gracz)
					aktualnyGracz=2;
				if (pakiet.gracz==false) 
					aktualnyGracz=1;
				ObjectOutputStream wyjscie = new ObjectOutputStream(
						klient[aktualnyGracz-1].getOutputStream());
				wyjscie.writeObject(pakiet);
				System.out.println("Wyslano paczkę do " + aktualnyGracz);
				System.out.println("------------------------------------");
				if (pakiet.s=="koniec") koniec=true;
			}
			Serwer.close();
			System.out.println("Serwer zostal zamkniety");
		} catch (Exception e) {
			System.out.println("Wystapil blad: " + e);
		}
	}

	public static void main(String[] args) {
		Serwer s = new Serwer();
	}

}

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;

import javax.swing.JOptionPane;

/*
 * Apl.java
 *
 * Created on 8 wrzesień 2008, 16:01
 */



/**
 *
 * @author  kisiu3
 */
public class Apl extends javax.swing.JApplet {
    
    /** Initializes the applet Apl */
   
	private Socket klient;
	private int nrApletu = 0;
    
	String paka;
	Pakiet pakiet = new Pakiet(null, false,false);
	Boolean koniec=false;
	Boolean gracz=true;
	
	public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    
        try {
    		String IP = JOptionPane.showInputDialog(null,
    				"Podaj ip serwera : ", "IP", 1);
    		if (IP == null)
    			IP = getCodeBase().getHost();
    		klient = new Socket(IP, 3333);
    		nrApletu = klient.getInputStream().read();
    		if (nrApletu == 1) {
    			JOptionPane
    					.showMessageDialog(
    							this,
    							"Przyłączyłeś się jako pierwszy, więc rozpoczynasz grę\n"
    									+ "Twoje pionki są BIAŁE\n"
    									+ "poczekaj chwilę na zgłosznie się drugiego gracza...",
    							"Komunikat", JOptionPane.OK_OPTION);
    			gracz=true;
    		} else if (nrApletu == 2) {
    			JOptionPane.showMessageDialog(this,
    					"Przyłączyłeś się do gry jako drugi,\n"
    							+ "Twoje pionki są CZARNE\n"
    							+ "kliknij ok, aby rozpocząć grę ...",
    					"Komunikat", JOptionPane.OK_OPTION);
    			gracz=false;
    		}
    	} catch (Exception e) {
    		JOptionPane.showMessageDialog(this,
    				"Błąd połączenia się z serwerem:\n" + e.getMessage(),
    				"Błąd połączenia", JOptionPane.OK_OPTION);
    	}
        while (!koniec) {
    		try {
    			ObjectInputStream wejscie = new ObjectInputStream(klient
    					.getInputStream());
    			pakiet = (Pakiet) wejscie.readObject();
    			paka=pakiet.s;
    			koniec=pakiet.koniec;
    			if (!koniec){
    				
    				jTextArea1.setText(paka);
    			}
    		
    			
    		} catch (Exception e) {
    			koniec = true;
    		}}
        
	}
	
    
    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        getContentPane().setLayout(null);

        jButton1.setText("jButton1");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });
        getContentPane().add(jButton1);
        jButton1.setBounds(160, 230, 73, 23);

        jTextArea1.setColumns(1);
        jTextArea1.setRows(1);
        jScrollPane1.setViewportView(jTextArea1);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(70, 36, 240, 120);
    }// </editor-fold>

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        jTextArea1.insert(pakiet.s, WIDTH);
        
        pakiet=new Pakiet(jTextArea1.getText(),gracz,koniec);
        
        try {
			ObjectOutputStream wyjscie = new ObjectOutputStream(
					klient.getOutputStream());
			wyjscie.writeObject(pakiet);
			
		} catch (Exception e1) {
			System.out.println("problem z wysłaniem"
					+ e1.toString());
		}
    }
    
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration
    
}