AIR SocketServer清理?应用程序退出时如何关闭?

时间:2012-02-04 22:34:50

标签: actionscript-3 sockets air serversocket

我有一个简单的AIR应用程序,它使用SocketServer类侦听套接字。

首次启动应用时,我有以下代码:

if( serverSocket.bound ) 
        {
            serverSocket.close();
            serverSocket = new ServerSocket();

        }
        serverSocket.bind( parseInt( localPort ), localIP );
        serverSocket.addEventListener( ServerSocketConnectEvent.CONNECT, onConnect );
        serverSocket.listen();

但是我发现如果我在进行一些快速更改后尝试测试我的电影,我就无法绑定到同一个地址:port。我猜不到端口仍然被占用。我收到“无效套接字上的操作尝试”错误。

但如果我等一下然后测试我的电影,我可以绑定到地址:端口。

close()没有生效。当用户决定退出应用程序时,我可以尝试关闭()吗?是否有某种事件允许我在应用程序退出之前执行某些操作?

1 个答案:

答案 0 :(得分:1)

首先,套接字与上一次运行应用程序时的套接字实例不同。其次,您正在寻找的事件是

NativeApplication.nativeApplication.addEventListener( Event.EXITING, this.handler_exit );

调用serverSocket.close();在事件处理程序中。也可能关闭所有在接受客户端时打开的客户端套接字。