我在 as3 中创建了一个 Socket 和一个 ServerSocket 对象,然后使用 connect 方法通过向其传递主机和端口来连接套接字。此外,我还让 ServerSocket 对象监听来自套接字(而不是我刚刚创建的套接字)的传入连接。当ServerSocket检测到连接并开始接收数据时,套接字对象会自动断开连接。所以我想知道如何在套接字对象中保持连接处于事件状态..
最佳答案
我将其发布为答案,而不是仅仅将此问题作为重复项引用,因为您的问题与我要在此处引用的问题和答案并不完全相同。然而,我链接到的答案提供了资源,可以帮助您了解连接套接字背后的安全模型,我认为这就是这里的问题:
air 2.6 serversocket and actionscript 3 socket connection
链接资源的摘录,演示了“握手”,其中策略文件被传递到连接套接字:
private function handshakeHandler( event:ProgressEvent ):void
{
var socket:Socket = event.target as Socket;
//Read the message from the socket
var message:String = socket.readUTFBytes( socket.bytesAvailable );
logCallback( "Received: " + message);
if( message == "" )
{
var policy:String = '\x00';
socket.writeUTFBytes( policy );
socket.flush();
socket.close();
logCallback("Sending policy: " + policy);
} else if ( message == "BEGIN" )
{
socket.removeEventListener( ProgressEvent.SOCKET_DATA, handshakeHandler );
socket.addEventListener( ProgressEvent.SOCKET_DATA, socketDataHandler );
socket.writeUTFBytes( "READY" );
socket.flush();
}
}
The policy file used in this example is:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="8087" />
</cross-domain-policy>\x00
关于actionscript-3 - AS3 中套接字自动断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654174/