gpt4 book ai didi

actionscript-3 - Air-As3 套接字关闭套接字停止发送信息

转载 作者:行者123 更新时间:2023-12-03 12:01:01 24 4
gpt4 key购买 nike

根据我们的测试,如果关闭 DataSocket,似乎不会发送“最近”写入的信息。

我们在 AS3 代码中使用 FTP,并打开一个命令和数据套接字。

每次我们在其上写入数据时,都会正确刷新 dataSocke。

问题是当来自 fileStream 的所有信息都已被读取并写入/刷新到 dataSocket 时,我们关闭了套接字。

在伪代码中:

-bytesToWrite = filestream.bytesToRead();
-Datasocket.write(bytesToWrite).
-Datasocket.flush():
-if (filestream.noMoreData)
DataSocket.close().

如果我们使用计时器(大约 10 秒)关闭套接字,则正确发送,如果不是,则服务器中的文件不完整。

奇怪的是,在刷新之后,关闭一个套接字,只是关闭一个套接字,SO 有这个信息要发送并决定何时发送它,你不能说“嘿传输层,不要发送我刚刚写的你” :-)。

但似乎实际上 as3 套接字正在做类似的事情。
我已经阅读了文档,如果您进行刷新,它应该由 SO 负责,所以即使在关闭 AS3 套接字之后,如果 SO 有信息要发送,它也应该发送它。

知道为什么会出现这种行为吗?

提前致谢。

最佳答案

请阅读The ultimate SO_LINGER page, or: why is my tcp not reliable了解套接字 API 和内核堆栈级别发生了什么。

然后按照建议,在原始 TCP 字节流之上放置至少一些基本的应用程序级协议(protocol) - 告诉接收者它即将接收的数据长度,发送确认所有内容都已读回发送者。

关于actionscript-3 - Air-As3 套接字关闭套接字停止发送信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com