我有一个简单的AIR应用程序,它使用SocketServer类侦听套接字。
首次启动应用时,我有以下代码:
if( serverSocket.bound )
{
serverSocket.close();
serverSocket = new ServerSocket();
}
serverSocket.bind( parseInt( localPort ), localIP );
serverSocket.addEventListener( ServerSocketConnectEvent.CONNECT, onConnect );
serverSocket.listen();
但是我发现如果我在进行一些快速更改后尝试测试我的电影,我就无法绑定到同一个地址:port。我猜不到端口仍然被占用。我收到“无效套接字上的操作尝试”错误。
但如果我等一下然后测试我的电影,我可以绑定到地址:端口。
close()没有生效。当用户决定退出应用程序时,我可以尝试关闭()吗?是否有某种事件允许我在应用程序退出之前执行某些操作?
答案 0 :(得分:1)
首先,套接字与上一次运行应用程序时的套接字实例不同。其次,您正在寻找的事件是
NativeApplication.nativeApplication.addEventListener( Event.EXITING, this.handler_exit );
调用serverSocket.close();在事件处理程序中。也可能关闭所有在接受客户端时打开的客户端套接字。