有关socket关闭时报“无法访问已经释放的对象”的问题
我做了个socket服务器,有开启和关闭两种状态,关闭情况下客户端不能访问,只有开启了才能访问。问题是每当我要关闭服务器的时候,总会报说“无法访问已经释放的对象”,让我感到十分郁闷,请各位高手多多帮忙,我是新接触socket的,有很多东西都不太清楚。 
 以下是我的代码: 
                         public      void   StartListening() 
                         {                                       
                                     //   Establish   the   local   endpoint   for   the   socket. 
                                     //   The   DNS   name   of   the   computer 
                                     //设置服务器的IP地址,网络端口和终结点 
                                     IPHostEntry   ipHostInfo   =   Dns.Resolve(Dns.GetHostName()); 
                                     IPAddress   ipAddress   =   ipHostInfo.AddressList[0]; 
                                     IPEndPoint   localEndPoint   =   new   IPEndPoint(ipAddress,   11000); 
                                     //   Create   a   TCP/IP   socket. 
                                     //建立服务器类型 
                                     listener   =   new   Socket(AddressFamily.InterNetwork,   SocketType.Stream,   ProtocolType.Tcp); 
                                     //   Bind   the   socket   to   the   local   endpoint   and   listen   for   incoming   connections. 
                                     try 
                                     { 
                                                 //绑定连接终结点并开始侦听 
                                                 listener.Bind(localEndPoint); 
                                                 listener.Listen(10);   
                                                 //   Start   an   asynchronous   socket   to   listen   for   connections. 
                                                 //建立异步SOCKET来侦听传入的连接信息 
                                                 listener.BeginAccept(new   AsyncCallback(AcceptCallback),   listener);                      
                                     } 
                                     catch   (Exception   e) 
                                     { 
                                                 MessageBox.Show(e.ToString());