/// <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"); }