GameCore.NetWork.CNetTCPSocketConnect.__ReadPacketHead C# (CSharp) Method

__ReadPacketHead() private method

读取 包头数据
private __ReadPacketHead ( ) : bool
return bool
        private bool __ReadPacketHead()
        {
            if (null == m_Socket || false == m_Socket.Connected)
            {
                Debug.Log("NetTCPSocketConnect::__ReadPacketHead socket is null or connecd = false ");
                return false;
            }

            try
            {
                Array.Clear(m_ReceiveHead, 0, m_ReceiveHead.Length);
                int receiveSize = m_Socket.Receive(m_ReceiveHead, SNetPacketCommon.PACK_HEAD_SIZE, SocketFlags.None);
                if (receiveSize == 0)
                {
                    Debug.Log("NetTCPSocketConnect::__ReadPacketHead read pack head 0 data ,will close connect");
                    return false;
                }

                while (receiveSize < SNetPacketCommon.PACK_HEAD_SIZE)
                {
                    if (m_Socket == null || m_Socket.Connected == false)
                    {
                        Debug.Log("NetTCPSocketConnect::__ReadPacketHead socket is null or connecd = false ");
                        return false;
                    }

                    int nTemsendcount = m_Socket.Receive(m_ReceiveHead, receiveSize, SNetPacketCommon.PACK_HEAD_SIZE - receiveSize, SocketFlags.None);
                    if (0 == nTemsendcount)
                    {
                        Debug.Log("NetTCPSocketConnect::__ReadPacketHead read pack receive 0 data,will close connect");
                        return false;
                    }

                    receiveSize += nTemsendcount;
                }

                m_unRecvTotalBytes += (uint)receiveSize;

                if (false == SocketNetPacket.IsPackHead(m_ReceiveHead))
                {
                    Debug.Log("NetTCPSocketConnect::__ReadPacketHead receive data is not packhead");
                    return false;
                }

                return true;

            }

            catch (System.Exception e)
            {
                Debug.LogError("NetTCPSocketConnect::__ReadPacketHead Socket  receive error: " + e.ToString());
                return false;
            }
        }