/// <summary>
 /// Launch Server System. Start Listen on TcpPortNum.
 /// </summary>
 void LaunchNetworkServer()
 {
     buffer         = new byte[buffersize];
     RepObjPairs    = new Dictionary <string, IReplicatableObject>();
     RepObjects     = new List <IReplicatableObject>();
     ClientDataList = new List <ClientDataContainer_ForTool>();
     FTSocketsList  = new List <FTSocketContainer>();
     NetIdBuffer    = 1;
     try
     {
         listener = new TcpListener(IPAddress.Any, TcpPortNum);
         listener.Start();
         ftplistner = new TcpListener(IPAddress.Any, FTPortNum);
         ftplistner.Start();
         TimerCallback callback = new TimerCallback(CheckForNewClient);
         AcceptTimer = new Timer(callback, null, m_ServerAcceptInterval, m_ServerAcceptInterval);
     }
     catch
     {
         return;
     }
     UdpSocket = new UdpClient(UdpPortNum);
     server    = this;
     LocalInst = this;
 }
 void ShutDownServer()
 {
     buffer = null;
     listener.Stop();
     listener = null;
     UdpSocket.Close();
     UdpSocket = null;
     ftplistner.Stop();
     ftplistner = null;
     server     = null;
     LocalInst  = null;
     AcceptTimer.Dispose();
     ClientDataList.ForEach((c) =>
     {
         SendTcpPacket(c, encoding.GetBytes("End"));
         c.TcpSocket.Close();
     });
     ClientDataList.Clear();
     RepObjPairs.Clear();
     RepObjPairs = null;
     RepObjects.Clear();
     RepObjects = null;
     DebugLogging("ShutDown Server");
 }