在关闭套接字之前未传递actionscript tcp数据包

时间:2013-08-22 14:23:21

标签: c++ actionscript-3 sockets tcp

我正在尝试编写一个简单的actionscript tcp客户端,它将数据发送到c ++ tcp服务器。我是动作脚本的新手,我正在使用adobe的示例代码(请参阅下面的链接)。我能够建立连接并发送数据,但只有在客户端卸载对象时才能在服务器上获得数据(因此我猜想关闭套接字)。我尝试使用c ++客户端,数据立即在服务器上可用,所以我必须在客户端丢失一些东西。也许我需要附加某种终止/标记序列?

通过tcp发送数据的Actionscript代码:

private function tcpConnect():void
{
    var customSocket:CustomSocket = new CustomSocket("127.0.0.1", 5331);            
    customSocket.timeout = 100;
    socketWrite(customSocket, 53);          
    socketWrite(customSocket, 54);
    socketWrite(customSocket, 55);
    socketWrite(customSocket, 56);
}

private function socketWrite(sock:CustomSocket, b:int):void
{           
    sock.writeByte(b);
    sock.writeByte(0);
    sock.flush();
}

C ++ tcp服务器:http://msdn.microsoft.com/en-us/library/windows/desktop/ms737593(v=vs.85).aspx

Actionscript tcp客户端:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html#includeExamplesSummary

1 个答案:

答案 0 :(得分:1)

在连接到服务器之后,客户端套接字将发送对跨域文件的请求,它将如下所示

 <policy-file-request/>

您可能已在服务器日志中看到过这一点

此时服务器应通过套接字连接发回文件。

客户端获取文件后,可能会关闭连接。

现在您需要重新启动连接并发送所有数据而不受阻碍。