//发送数据
        public static void Send(NetMsgBase msg)
        {
            //状态判断
            if (socket == null || !socket.Connected)
            {
                return;
            }
            if (isConnecting)
            {
                return;
            }
            if (isClosing)
            {
                return;
            }
            //数据编码
            byte[] nameBytes = NetMsgBase.EncodeName(msg);
            byte[] bodyBytes = NetMsgBase.Encode(msg);
            int    len       = nameBytes.Length + bodyBytes.Length;

            byte[] sendBytes = new byte[2 + len];
            //组装长度
            sendBytes[0] = (byte)(len % 256);
            sendBytes[1] = (byte)(len / 256);

            //组装名字
            Array.Copy(nameBytes, 0, sendBytes, 2, nameBytes.Length);
            //组装消息体
            Array.Copy(bodyBytes, 0, sendBytes, 2 + nameBytes.Length, bodyBytes.Length);

            //写入队列
            ByteArray ba    = new ByteArray(sendBytes);
            int       count = 0;

            //writeQueue的长度
            lock (writeQueue)
            {
                writeQueue.Enqueue(ba);
                count = writeQueue.Count;
            }
            if (count == 1)
            {
                socket.BeginSend(sendBytes, 0, sendBytes.Length, 0, SendCallback, socket);
            }
        }