//�ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ����ݽ��ջص�
        private void ReceiveCallback(IAsyncResult ar)
        {
            try
            {
                //
                SocketStateObject state = ar.AsyncState as SocketStateObject;
                //��ȡ����
                int bytesRead = m_socket.EndReceive(ar);
                if (bytesRead > 0)
                {
                    if (!m_blChatMode)
                    {
                        //�ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ����ֻص�ģʽ
                        if (onStreamData != null)
                        {
                            onStreamData(m_socket, this, state.buffer);
                        }
                    }
                    else
                    {
                        state.tempString.Append(UTF8Encoding.UTF8.GetString(state.buffer, 0, bytesRead));
                        string str = state.tempString.ToString();
                        if (str.Substring(str.Length - 1, 1) == NetConfig.EndChar)
                        {
                            if (onStringData != null)
                            {
                                onStringData(m_socket, this, str);
                            }

                        }
                    }
                    //�ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ�һ�ֽ�����ϱ�������״̬
                    state = new SocketStateObject(m_socket);
                    m_socket.BeginReceive(state.buffer, 0,
                        SocketStateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
                }
            }
            catch (SocketException se)
            {
                //ErrorBox.Show(se,"socketError");
                if (onClosed != null)
                    onClosed(this, se.Message);
            }
            catch (Exception ex)
            {
                //ErrorBox.Show(ex , "socketError");
                if (onClosed != null)
                    onClosed(this, ex.Message);
            }
        }
 //�ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ����ݽ��պ���
 public void BeginReceive()
 {
     if (m_socket == null)
     {
         return;
     }
     //��ʼ��������
     SocketStateObject state = new SocketStateObject(m_socket);
     m_socket.BeginReceive(state.buffer, 0,
         SocketStateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
 }