Actionscript 3 &引用;索引超出范围”;将readObject与套接字一起使用时出错

Actionscript 3 &引用;索引超出范围”;将readObject与套接字一起使用时出错,actionscript-3,sockets,Actionscript 3,Sockets,我正在尝试构建一个简单的as3服务器/客户端应用程序 当客户端连接到服务器时,它应该向服务器发送类似“1”的消息 服务器执行以下操作: private function onConnect(e:ServerSocketConnectEvent):void { incomingSocket = e.socket; incomingSocket.addEventListener(ProgressEvent.SOCKET_DATA, onData); // You can no

我正在尝试构建一个简单的as3服务器/客户端应用程序

当客户端连接到服务器时,它应该向服务器发送类似“1”的消息

服务器执行以下操作:

    private function onConnect(e:ServerSocketConnectEvent):void
{
    incomingSocket = e.socket;
incomingSocket.addEventListener(ProgressEvent.SOCKET_DATA, onData);
    // You can now read and write data from the socket instance
trace("looks like a connection happened!");
}


private function onData(e: ProgressEvent):void {
    var s:String = incomingSocket.readObject();

 interrupt(s);
}
所以flash给了我一个错误:

RangeError:错误#2006:提供的 索引超出范围。在 flash.net::Socket/readObject()

行号闪存提供给我,表明问题是

var s:String = incomingSocket.readObject();
有人知道这是怎么回事吗

谢谢大家!!
n

readObject用于读取套接字上的序列化对象

如果发送了字符串,请使用readUTF,如果知道字符串的长度,请使用readUTFBytes


如果发送了Int,请使用readInt或相应的方法。

readObject用于读取套接字上的序列化对象

如果发送了字符串,请使用readUTF,如果知道字符串的长度,请使用readUTFBytes


如果您发送了Int,请使用readInt或相应的方法。

谢谢您的回答。我用readUTF尝试了一下,但它抛出了一个错误:“错误:错误#2030:遇到文件结尾。在flash.net::Socket/readUTF()”您应该熟悉Adobe Live Reference。它将告诉您参数是uint的字节数。是的,我发现了,所以我编辑了我的评论。我现在遇到的问题是:“错误:错误#2030:遇到文件结尾。在flash.net::Socket/readUTF()”向服务器发送数据时,必须以空值字符串终止。fromCharCode(0)。在服务器上的retrospect中,当您将数据发送到客户端时,您必须以null值结束数据,在PHP中也是这样,即chr(0)。谢谢您的回答。我用readUTF尝试了一下,但它抛出了一个错误:“错误:错误#2030:遇到文件结尾。在flash.net::Socket/readUTF()”您应该熟悉Adobe Live Reference。它将告诉您参数是uint的字节数。是的,我发现了,所以我编辑了我的评论。我现在遇到的问题是:“错误:错误#2030:遇到文件结尾。在flash.net::Socket/readUTF()”向服务器发送数据时,必须以空值字符串终止。fromCharCode(0)。在服务器上的retrospect中,当您将数据发送到客户端时,您必须以null值结束数据,在PHP中也是chr(0)。请告诉我们您是如何发送消息的。请告诉我们您是如何发送消息的。