private void OnReceive(IAsyncResult ar) { try { clientSocket.EndReceive(ar); //Convert the bytes received into an object of type Data Data msgReceived = new Data(byteData); // if a msg from the server, raise incoming msg. if (msgReceived.sID == 0) { if (IncomingMsg != null) { MsgEventArgs e = new MsgEventArgs(msgReceived.cmdCommand, msgReceived.sID, msgReceived.strMessage); IncomingMsg(this, e); } } byteData = new byte[1024]; //Start listening to receive more data from the server clientSocket.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref epServer, new AsyncCallback(OnReceive), null); } catch (Exception ex) { mLogger.AddLogMessage("Communicator: " + ex.Message); mLogger.AddLogMessage(ex.StackTrace.ToString()); } }
public bool Connect(int port, string IP, short ID, string Logfile) { mLogFileName = Logfile; mID = ID; mIP = IP; mPort = port; #region logger try { if (mLogger == null) { // instantiate the logger mLogger = Logger.Logger.Instance; // instantiate the log observer that will write to disk mFileLogger = new FileLogger(this.mLogFileName); mFileLogger.Init(); // Add mFileLogger to the Logger. mLogger.RegisterObserver(mFileLogger); mLogger.AddLogMessage("******* NEW RUN OF THE AGENT! *******"); } } catch (Exception) { Clean(); return(false); } #endregion logger #region Communication try { IPAddress ipAddress = IPAddress.Parse(mIP); mComm.Init(mID, ipAddress, mPort); mComm.SendMessage(Command.Login, mID.ToString()); mComm.Listen(); } catch (Exception ex) { mLogger.AddLogMessage("Communication Init: " + ex.Message); if (mLogger != null) { mFileLogger.Terminate(); } return(false); } #endregion Communication // connection established successfully AHStateManager(GameState.Idle); return(true); }