public bool Listen() { try { // initialize packet factory PacketHandler.Initialize(); m_MasterSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint remoteEP = new IPEndPoint(Program.AvalonCfg.Master.IPAddress, Program.AvalonCfg.Master.Port); m_MasterSock.Connect(remoteEP); SMSG_CONNECT_MASTER spkt = new SMSG_CONNECT_MASTER(Program.AvalonCfg.Server.Servername, Program.AvalonCfg.Server.ServerIP, (ushort)Program.AvalonCfg.Server.ListenPort); m_MasterSock.Send(spkt.Stream); SocketServer clientSock = new SocketServer(m_MasterSock); SocketClient clientState = new SocketClient(clientSock); clientSock.Socket.BeginReceive(clientSock.m_bRecvBuffer, 0, 0x1000, SocketFlags.None, clientSock.OnDataReceive, clientState); // listen on port 15554 m_MainSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m_MainSock.Bind(new IPEndPoint(IPAddress.Any, m_ListenPort)); m_MainSock.Listen(0x20); // when a connection is established invoke OnNewConnection() m_MainSock.BeginAccept(new AsyncCallback(OnNewConnection), m_MainSock); Logger.Log(Logger.LogLevel.Info, "Server Status", "Listening on port " + Program.AvalonCfg.Server.ListenPort); return true; } catch (SocketException se) { Logger.Log(Logger.LogLevel.Error, "SocketServer", "Listen: {0}", se.Message); } return false; }