【发布时间】:2013-01-22 13:51:43
【问题描述】:
根据我们的测试,如果关闭 DataSocket,似乎不会发送“最近”写入的信息。
我们在 AS3 代码中使用 FTP,并打开一个命令和数据套接字。
dataSocke 每次写入时都会正确刷新。
问题是当来自 fileStream 的所有信息都已被读取并写入/刷新到 dataSocket 时,我们关闭了套接字。
在伪代码中:
-bytesToWrite = filestream.bytesToRead();
-Datasocket.write(bytesToWrite).
-Datasocket.flush():
-if (filestream.noMoreData)
DataSocket.close().
如果我们使用定时器(约10秒)关闭socket,则正确发送,如果不正确,则服务器中的文件不完整。
奇怪的是,在刷新之后,关闭一个套接字,只是关闭一个套接字,SO 有这个信息要发送并决定什么时候发送它,你不能说“嘿传输层,不要发送什么我刚刚写信给你”:-)。
但实际上 as3 套接字似乎正在做类似的事情。 我已经阅读了文档,如果你进行了刷新,它应该由 SO 负责,所以即使在关闭 AS3 套接字之后,如果 SO 有信息要发送,它也应该发送它。
知道为什么会出现这种行为吗?
提前致谢。
【问题讨论】:
标签: actionscript-3 sockets air ftp