套接字上的文件结尾是什么意思?

时间:2009-08-24 10:37:06

标签: actionscript-3 sockets flexbuilder

在Flex Builder 3中使用Action Script 3.

当处理SOCKET_DATA事件时,我偶尔会看似随机,得到“错误#2030:遇到文件结尾”。调用socket.readInt()时。我很困惑这个错误意味着什么,因为我不是在读文件?我对套接字有点不了解。感谢。

2 个答案:

答案 0 :(得分:7)

文件结束错误通常意味着套接字的另一端已关闭其连接,IIRC。

文件结束的原因是程序中的级别非常低,磁盘上的文件和套接字都用数字表示 - {{3} - 操作系统转换为表示文件或套接字或管道或其他任何内容的对象。

通常,您可以通过检查是否只读取EOF来避免此类错误。如果您确实阅读了EOF,并尝试再次从套接字/文件中读取,那么您将收到EOF错误。

<小时/> 更新:根据file descriptor,如果另一端关闭套接字,您确实会收到一个关闭事件。

答案 1 :(得分:3)

当读取已关闭的套接字时,您将获得:Error #2002: Operation attempted on invalid socket.

文件结束时的错误通常发生在任何字节流上,如果你读取的字节多于可用字节......这就是文件,套接字等的情况......在flash的情况下,它发生在从一个SocketByteArray,甚至在其他情况下......

TCP / IP是基于包的,但是模拟了一个流...因此你只能读取已经通过TCP包发送给你的流的数据...检查Socket::bytesAvailable以找出,当前可用的字节数...总是要记住,您在一次操作中写入套接字的数据可能会到达多个包中,每个都很可能导致Flash播放器触发socketData个事件... < / p>

格尔茨

back2dos

相关问题