Exemplo n.º 1
0
    private void CheckReceive()
    {
        while (true)
        {
            if (_socketCon.isSocketNull() == null)
            {
                break;
            }

            //发送协议。需要发协议单独开个线程?????
            SendBySocket();

            if (_socketCon.isSocketNull() == null)
            {
                continue;
            }

            //接收协议
            byte[] data    = null;
            int    datalen = 0;
            if (_socketCon.Rece(ref data, ref datalen))
            {
                ReceDataStruct receData = new ReceDataStruct();
                receData.data    = data;
                receData.datalen = datalen;

                ParseData(receData);
            }

            Thread.Sleep(50);
        }
    }
Exemplo n.º 2
0
    public void DeserializeData(ReceDataStruct source)
    {
        if (source == null)
        {
            return;
        }

        Stream stream = new MemoryStream(source.data, 0, source.datalen);

        CMsg cmsg = ProtoBuf.Serializer.Deserialize <CMsg>(stream);

        //消息号保存进队列
        MessageStruct message = new MessageStruct();

        message.cmd        = cmsg.cmd;
        message.dest       = cmsg.cmd;
        message.body       = cmsg.body;
        message.serverTime = cmsg.serverTime;

        //分发协议去解析
        if (onDispense != null)
        {
            onDispense(message);
        }

        SendreceiveManage.getInstance().PushReceData(message);

        Debug.Log("收到消息 dest=" + cmsg.dest + ",cmd=" + cmsg.cmd);
    }
Exemplo n.º 3
0
    //解析协议信息
    private void ParseData(ReceDataStruct data)
    {
        //GDDirector.getInstance().getCurrentFactory().createProtocolType1().DeserializeData(data);
        IProtocolFactory factory = new ProtocolFactory();

        factory.createProtocolType1().DeserializeData(data);
    }
Exemplo n.º 4
0
    private void CheckReceive()
    {
        while (true)
        {
            if (_socketCon.isSocketNull() == null)
            {
                break;
            }

            //发送协议。需要发协议单独开个线程?????
            SendBySocket();

            if (_socketCon.isSocketNull() == null)
            {
                continue;
            }

            //接收协议
            byte[] data    = null;
            int    datalen = 0;
            if (_socketCon.Rece(ref data, ref datalen))
            {
                ReceDataStruct receData = new ReceDataStruct(data, datalen);

                //解析协议
                CurrProtocolManage.getInstance().DeserializeData(receData);
            }

            Thread.Sleep(50);
        }
    }
Exemplo n.º 5
0
    public void DeserializeData(ReceDataStruct source)
    {
        if (source == null)
        {
            return;
        }

        Stream stream = new MemoryStream(source.data, 0, source.datalen);

        CMsg cmsg       = ProtoBuf.Serializer.Deserialize <CMsg>(stream);
        int  cmd        = cmsg.cmd;
        int  dest       = cmsg.dest;
        long serverTime = cmsg.serverTime;

        byte[] body = cmsg.body;

        //消息号保存进队列
        messageStruct _pb = new messageStruct();

        _pb.cmd        = cmsg.cmd;
        _pb.dest       = cmsg.cmd;
        _pb.body       = cmsg.body;
        _pb.serverTime = cmsg.serverTime;

        //分发协议去解析
        PBParseManage.getInstance().ParseData(dest, cmd, body);

        if (NetWorkManage.getInstance().IsOftenData(dest, cmd))
        {
            NetWorkManage.getInstance().PushReceDataScene(_pb);
        }
        else
        {
            NetWorkManage.getInstance().PushReceDataQueue(_pb);
        }

        Debug.Log("收到消息 dest=" + dest + ",cmd=" + cmd);
    }
Exemplo n.º 6
0
 public void DeserializeData(ReceDataStruct source)
 {
     Debug.Log("DeserializeData");
 }
Exemplo n.º 7
0
    //解析协议信息
    private void ParseData(ReceDataStruct data)
    {
        IProtocolFactory factory = new ProtocolFactory();

        factory.createProtocolType1().DeserializeData(data);
    }