使用套接字时,我可以将数据读取为
while (socket.bytesAvailable)
{
textArea.text += socket.readUTFBytes(socket.bytesAvailable);
}如何在使用XMLSocket时读取数据?使用xmlSocket.toString()就足够了吗?
发布于 2011-05-24 15:28:23
不,使用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);
}发布于 2011-05-24 15:27:57
socket.addEventListener(DataEvent.DATA, onData);
private function onData(event:DataEvent):void {
trace(event.data);
}https://stackoverflow.com/questions/6106935
复制相似问题