Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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);
        }