Beispiel #1
0
        public override void handleInput(SocketMessage input)
        {
            String head = input.Header;
            String a = "";
            String[] up ;
            List<String> args = input.Arguments;
            switch (head)
            {
                case "LOGSUCCESS":
                    loggedIn = true;
                    try
                    {
                        strUserName = args[0];
                    }
                    catch (Exception e)
                    {

                    }
                    eConnection.Invoke("LIN");
                break;
                case "LOGERROR":
                    MessageBox.Show("E-Mail or password is incorrect.", "Error");
                break;
                case "REGERR0":
                    MessageBox.Show("Lobby server error. Please try again later.");
                break;
                case "REGERR1":
                    MessageBox.Show("Please enter a valid e-mail address.");
                break;
                case "REGERR2":
                    MessageBox.Show("Password must be at least 6 characters long.");
                break;
                case "REGERR3":
                    MessageBox.Show("Nickname already exists.");
                break;
                case "REGERR4":
                    MessageBox.Show("E-Mail already registered.");
                break;
                case "REGSUCCESS":
                MessageBox.Show("Account successfully registered.");
                break;
                default:
                if (loggedIn)
                {
                    switch (head)
                    {
                        case "USERONLINE":
                            //User[] temp = new User[args.Count];
                            try
                            {
                                a = args[0];
                                up = a.Split(new char[1] { ':' });
                                OnlineUsers.Add(new User(up[0], up[1]));
                                eUserEvent.Invoke(new User(up[0], up[1]), true);
                            }
                            catch (Exception e)
                            {
                                break;
                            }
                            break;
                        case "USEROFFLINE":
                            try
                            {
                                a = args[0];
                                up = a.Split(new char[1] { ':' });
                                for (int i = 0; i < OnlineUsers.Count; i++)
                                {
                                    if (OnlineUsers[i].Email.Equals(up[0]))
                                    {
                                        eUserEvent.Invoke(OnlineUsers[i], false);
                                        OnlineUsers.RemoveAt(i);
                                        break;
                                    }
                                }
                            }
                            catch (Exception e)
                            {

                                break;
                            }
                            break;
                        case "ONLINELIST":
                            try
                            {
                                OnlineUsers = new List<User>(0);
                                for (int i = 0; i < args.Count; i++)
                                {
                                    a = (String)args[i];
                                    up = a.Split(new char[1] { ':' });
                                    if (up.Length == 2)
                                        OnlineUsers.Add(new User(up[0], up[1]));
                                }
                                eUserEvent.Invoke(new User("", ""), true);
                            }
                            catch (Exception e)
                            { }
                            break;
                        case "LOBCHAT":
                            try
                            {
                                eLobbyChat.Invoke(LobbyChatTypes.Global, (String)args[0], (String)args[1]);
                            }
                            catch (Exception e)
                            { }
                            break;
                        case "LOBW":
                            try
                            {
                                String[] s = args[0].Split(new char[1] { ':' });
                                strLastWhisperFrom = s[0];
                                eLobbyChat.Invoke(LobbyChatTypes.Whisper, (String)args[0], (String)args[1]);
                            }
                            catch(Exception e){};
                            break;
                        case "CHATERROR":
                            try{
                            eLobbyChat.Invoke(LobbyChatTypes.Error, "ERROR", (String)args[0]);
                                                            }
                            catch(Exception e){};
                            break;
                        case "CHATINFO":
                            try
                            {
                                eLobbyChat.Invoke(LobbyChatTypes.System, "SYSTEM", (String)args[0]);
                            }
                            catch(Exception e){};
                        break;
                        default:
                            #if (DEBUG)
                                MessageBox.Show(input.getMessage() , "Input from sock");
                            #endif
                            break;
                    }
                }
                break;
            }
        }
Beispiel #2
0
 /// <summary>
 /// Sends a message to the remote socket. 
 /// </summary>
 /// <param name="sm">SocketMessage to be sent.</param>
 /// <returns>true on success, false on error. Note: Success just means that the message has been sent, it doesn't verifiy it was recieved.</returns>
 public Boolean writeMessage(SocketMessage sm)
 {
     try
     {
         sock.Send(Encoding.ASCII.GetBytes(sm.getMessage()));
         return true;
     }
     catch (SocketException se)
     {
         handleError(se.SocketErrorCode + " : " + se.Message);
     }
     catch (Exception ioe)
     {
         handleError(ioe.Message);
     }
     return false;
 }