如何从as3的XMLSocket中读取数据?

| 使用Socket时,我可以读取数据
while (socket.bytesAvailable) 
{
    textArea.text += socket.readUTFBytes(socket.bytesAvailable);
}
使用
XMLSocket
时如何读取数据?使用
xmlSocket.toString()
是否足够?     
已邀请:
不,使用XMLSocket接收数据是事件驱动的,您创建一个套接字,设置事件处理程序:
socket = new XMLSocket();   
socket.addEventListener(Event.CLOSE, closeHandler, false, 0, true);
socket.addEventListener(Event.CONNECT, connectHandler, false, 0, true);
socket.addEventListener(DataEvent.DATA, dataHandler, false, 0, true);
socket.addEventListener(IOErrorEvent.IO_ERROR, errorHandler, false, 0, true);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityHandler, false, 0, true);    

socket.connect(host, port);
您将在dataHandler中接收数据:
private function dataHandler(e: DataEvent): void {  
   var xml: XML = XML(e.data);
   ...
}
现在,您可以使用所需的任何方式处理XML。发送更容易,但是仍然要考虑到调用connect之后没有立即连接,必须等待connectHandler被调用之后再发送数据:
var xml: XML = ...
if (socket.connected) {
  socket.send(xml);
}
    
socket.addEventListener(DataEvent.DATA, onData);

private function onData(event:DataEvent):void {
    trace(event.data);
}
    

要回复问题请先登录注册