AS3 AIR / FlashBuilder如何在退出时释放套接字?

时间:2011-09-06 13:01:36

标签: actionscript-3 sockets flash-builder

当我从调试器退出并重新启动时,我经常收到消息:

Error: Error #2002: Operation attempted on invalid socket.
    at flash.net::ServerSocket/internalBind()
    at flash.net::ServerSocket/bind()

我通常需要等待一段时间才能重新启动应用程序而不会出错。

我该如何避免这种情况?

private function openConnection():void
    {
        _serverSocket = new ServerSocket();
        _serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnect)
        _serverSocket.bind(888);
        _serverSocket.listen();
    }

    private function onConnect(e:ServerSocketConnectEvent):void
    {
        trace("Client is connected");
        _clientSocket = e.socket;
        _clientSocket.addEventListener(ProgressEvent.SOCKET_DATA, onData);
        _clientSocket.addEventListener(Event.CLOSE, onConnectionClosed);
    }

1 个答案:

答案 0 :(得分:0)

我认为你不能避免它。我只需要一段时间让操作系统在AIR放开后释放套接字。作为一种解决方法,您可以捕获错误并使用计时器每隔几秒重试绑定套接字。

AIR应用程序永远不需要策略文件(除非打开套接字的代码是从应用程序外部加载的。)