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); }
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); }
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); }
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); }