0

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

Actionscript 代码通过 tcp 发送数据:

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

4

1 回答 1

1

连接到服务器后,客户端套接字将立即发送对跨域文件的请求,它看起来像这样

 <policy-file-request/>

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

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

一旦客户端获得文件,它可能会关闭连接。

现在您需要重新启动连接并无障碍地发送所有数据。

于 2013-08-22T18:26:40.683 回答