Ciao a tutti,
ho un piccolo problema con XMLSocket.
Ho una piccola chat client(flash)/server(java).

Il server multithread gestisce l'accesso dei vari client e offre un servizio di messaging multicast.

La cosa che non capisco è che per poter ottenere risposta (e generare l'evento EventData.DATA) dal server ogni client deve chiamare due volte il metodo send della classe XMLSocket.

In sostanza il buffer sul socket non viene svuotato al primo send ma al secondo!
Ecco il codice...

client in flash
codice:
var xmlsock:XMLSocket = new XMLSocket(); 
xmlsock.connect("127.0.0.1", 8080);


xmlsock.addEventListener(DataEvent.DATA, _onData); 
function _onData(event:DataEvent):void{ 
    trace("[" + event.type + "] " + event.data); 
}


btn.addEventListener(MouseEvent.MOUSE_DOWN,_send);
function _send(evt:MouseEvent){
	xmlsock.send("<root>Ciao</root>\n");
	xmlsock.send("");
}

questo è il pezzo di codice in java

server in java
codice:
.........

public void run(){
		try{
            
		    boolean done = false; 
		    while (!done){ 
		    	System.out.println(">> in attesa del messaggio");
			    String str = readerIn.readLine();
			    System.out.println("Messaggio: " + str);
			    if (str == null) done = true; 
	          	else{ 
	          		if(str.trim().equals("EXIT")) 
	          			done = true; 
	          		else
	          			out(str); 
	          	}
			}
		   incoming.close(); 
		}catch (Exception e){ 
		    System.out.println(e); 
		} 
	}
	
    private void out(String str) 
    {
        for(int i = 0;i < client.size();i++)
        	((ClientThread)client.elementAt(i)).send(str);
     } 
    
    private void send(String str){
    	try{
    	
    		printOut.println(str);
    		System.out.println("spedito il messaggio al flash: " + str);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    }
qualcuno saprebbe dirmi dov'è il problema?