2012-02-04 98 views
0

我有一個簡單的AIR應用程序,它使用SocketServer類監聽一個套接字。AIR SocketServer清理?應用程序退出時如何關閉?

我有下面的代碼,當我第一次啓動該應用程序:

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

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

但是我覺得,如果我嘗試做一些快速的變化之後測試我的電影,我無法綁定到同一地址:港口。我猜不知道該港口還在被佔領。我收到「無效套接字嘗試操作」錯誤。

但是,如果我稍等一會兒,然後測試我的電影,我可以綁定到地址:端口。

close()沒有影響。當用戶決定退出應用程序時,我可以嘗試關閉()嗎?是否有某種事件可以讓我在應用程序退出前執行某些操作?

回答

1

首先,套接字與上次運行應用程序期間的套接字實例不同。其次,你正在尋找的事件是

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

呼叫serverSocket.close();在事件處理程序中。關閉接受客戶端時打開的所有客戶端套接字也可能很好。

+0

工作就像一個魅力!謝謝@valyard。 – milesmeow 2012-02-06 20:51:17

相關問題