Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 弯曲力插座,用于冲洗_Flash_Apache Flex_Sockets_Actionscript - Fatal编程技术网

Flash 弯曲力插座,用于冲洗

Flash 弯曲力插座,用于冲洗,flash,apache-flex,sockets,actionscript,Flash,Apache Flex,Sockets,Actionscript,如何在发送下一个数据之前强制刷新套接字 示例代码: public function socketSend(data:String):void { socket.writeUTFBytes(data); socket.flush(); } 这基本上没问题。但有时,它不会刷新套接字,而是将当前信息与下一个信息结合起来发送。这是我不想要的,因为它破坏了我的应用程序通信 例如,如果我调用socketSend('command1'),然后调用socketSend('command2'),

如何在发送下一个数据之前强制刷新套接字

示例代码:

public function socketSend(data:String):void
{
    socket.writeUTFBytes(data);
    socket.flush();
}
这基本上没问题。但有时,它不会刷新套接字,而是将当前信息与下一个信息结合起来发送。这是我不想要的,因为它破坏了我的应用程序通信

例如,如果我调用
socketSend('command1')
,然后调用
socketSend('command2')
,我希望它先发送
command1
,然后再发送
command2
。但有时它会同时发送这两个命令,使发送字符串变成
command1command2
。这会中断应用程序通信

在输入下一组信息之前,我如何强制它刷新?如何检查信息是否从套接字刷新


谢谢。

XY问题。TCP 101:TCP是一个八位字节的流式服务。不能传输长度超过一个字节的消息。您的应用程序通信中断,因为您没有TCP协议来解析字节流中的消息。非常感谢您的回复。你能建议如何解决这个问题吗?例如,请尝试用空字节终止“command”字符串:
'command1\0'
'command2'+String.fromCharCode(0)
。此外,您还可以使用
套接字的
bytesPending
属性查看是否还有剩余的字节需要刷新。此外,套接字在将挂起的数据移动到网络层时会调度“outputProgress”。