Beispiel #1
0
 public NetData(int correlationid, NetProtocal.Request cmd, byte[] data, int len)
 {
     m_correlationid = correlationid;
     m_serverRequest = cmd;
     m_data          = new byte[len];
     Array.Copy(data, m_data, len);
 }
Beispiel #2
0
    private void AddToSendQueue(int correlationid, NetProtocal.Request cmdtype, byte[] data, int len)
    {
        Debug.Log("###########################\nsend data error AddToSendQueue");
        NetData sendata = new NetData(correlationid, cmdtype, data, len);

        m_sendqueue.Enqueue(sendata);
    }
Beispiel #3
0
    public void SendData(NetProtocal.Request cmd, object obj = null)
    {
        byte[] content = m_sendms.ToArray();

        int len = content.Length;

        if (IsLittleEndian)
        {
            len = ConvertEndian.Convert(content.Length);
        }

        content = ProtoNetSerialize.Encode((int)cmd, obj);
        // Array.Copy(BitConverter.GetBytes(len), 0, m_sendbuf, 0, 4);
        System.Array.Copy(content, 0, m_sendbuf, 0, content.Length);
        ++m_correlationid;

        Send(cmd, m_correlationid, m_sendbuf, content.Length);

        //Debug.Log("发送数据:" + cmd.ToString() + "  len:" + content.Length);
        //Debug.Log("发送数据" + cmd);
    }
Beispiel #4
0
    private bool Send(NetProtocal.Request cmd, int correlationid, byte[] data, int len)
    {
        SocketError error;

        if (null == client || !client.Connected)
        {
            m_status = EStatus.e_closed;
            Debug.Log("#############################\nsocket is closed");
            AddToSendQueue(m_correlationid, cmd, data, len);
            ConnectServer();
            return(false);
        }

        outStream.Write(data, 0, len);
        //if (SocketError.Success != error)
        //{
        //    Debug.LogError("socket error"+error.ToString());
        //    AddToSendQueue(m_correlationid, cmd, data, len);
        //    return false;
        //}
        return(true);
    }