@Override
    public void run()
    {
        try
        {
            // Ϣ
            String msgStr = ""; 
            
            // ַָеλ
            int separatorIndex = 0; 
            
            // ǷϢ
            isListen = true; 
            
            while(isListen)
            {
                // Ϣ
                msgStr = dis.readUTF();
                
                // ȷַָеλ
                separatorIndex = msgStr.indexOf(separatorStr);
                
                // ȡϢ
                MessageTypeEnum msgType = MessageTypeEnum.valueOf(msgStr.substring(0, separatorIndex));
                
                switch (msgType)
                {
                    
                    /*****************  Login  ******************/
                    case LoginReturn:
                    {
                        // bizд
                        LoginHandleBiz.getLoginHandleBiz().loginHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }
                    
                    /*****************  ûϢ ******************/
                    case AllOnlineUserDetailReturn:
                    {
                        // bizд
                        LoginHandleBiz.getLoginHandleBiz().onlineUserDetailReturnHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }
                    
                     /*****************  û ******************/
                    case NewClientConnect:
                    {
                        // bizд
                        LoginHandleBiz.getLoginHandleBiz().newClientConnectHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }
                    
                     /*****************  û ******************/
                    case ClientOffLine:
                    {
                        // bizд
                        LoginHandleBiz.getLoginHandleBiz().ClientOffLineHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }
                    
                    /***************** ȺϢ ******************/
                    case GroupChat:
                    {
                        // bizд
                        ChatHandleBiz.getChatHandleBiz().groupChatHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }

                    /***************** һһϢ ******************/
                    case SingleChat:
                    {
                        // bizд
                        ChatHandleBiz.getChatHandleBiz().singleChatHandle(msgStr.substring(separatorIndex + 3));
                        
                        break;
                    }

                    default:
                        break;
                }
                
            }
            
        }
        catch(SocketException e)
        {
            System.err.println("Ͽӣ");
            e.printStackTrace();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }