Esempio n. 1
0
    /// <summary>
    /// 数据转网络结构
    /// </summary>
    /// <param name="_protocalType"></param>
    /// <param name="_data"></param>
    /// <returns></returns>
    private sSocketData BytesToSocketData(eProtocalCommand _protocalType, byte[] _data)
    {
        sSocketData tmpSocketData = new sSocketData();

        tmpSocketData._buffLength    = Constants.HEAD_LEN + _data.Length;
        tmpSocketData._dataLength    = _data.Length;
        tmpSocketData._protocallType = _protocalType;
        tmpSocketData._data          = _data;
        return(tmpSocketData);
    }
Esempio n. 2
0
    /// <summary>
    /// 发送消息基本方法
    /// </summary>
    /// <param name="_protocalType"></param>
    /// <param name="_data"></param>
    private void SendMsgBase(eProtocalCommand _protocalType, byte[] _data)
    {
        if (clientSocket == null || !clientSocket.Connected)
        {
            _ReConnect();
            return;
        }

        byte[] _msgdata = DataToBytes(_protocalType, _data);
        clientSocket.BeginSend(_msgdata, 0, _msgdata.Length, SocketFlags.None, new AsyncCallback(_onSendMsg), clientSocket);
    }
Esempio n. 3
0
 //删除网络事件观察者
 public void removeObserver(eProtocalCommand _protocalType, Callback_NetMessage_Handle _callback)
 {
     if (_netMessage_EventList.ContainsKey(_protocalType))
     {
         _netMessage_EventList[_protocalType] -= _callback;
         if (_netMessage_EventList[_protocalType] == null)
         {
             _netMessage_EventList.Remove(_protocalType);
         }
     }
 }
Esempio n. 4
0
 //添加网络事件观察者
 public void addObsever(eProtocalCommand _protocalType, Callback_NetMessage_Handle _callback)
 {
     if (_netMessage_EventList.ContainsKey(_protocalType))
     {
         _netMessage_EventList[_protocalType] += _callback;
     }
     else
     {
         _netMessage_EventList.Add(_protocalType, _callback);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// 以二进制方式发送
 /// </summary>
 /// <param name="_protocalType"></param>
 /// <param name="_byteStreamBuff"></param>
 public void SendMsg(eProtocalCommand _protocalType, ByteStreamBuff _byteStreamBuff)
 {
     SendMsgBase(_protocalType, _byteStreamBuff.ToArray());
 }
Esempio n. 6
0
 /// <summary>
 /// 合并协议,数据
 /// </summary>
 /// <param name="_protocalType"></param>
 /// <param name="_data"></param>
 /// <returns></returns>
 private byte[] DataToBytes(eProtocalCommand _protocalType, byte[] _data)
 {
     return(SocketDataToBytes(BytesToSocketData(_protocalType, _data)));
 }
Esempio n. 7
0
 /// <summary>
 /// 以ProtoBuf方式发送
 /// </summary>
 /// <param name="_protocalType"></param>
 /// <param name="data"></param>
 public void SendMsg(eProtocalCommand _protocalType, ProtoBuf.IExtensible data)
 {
     SendMsgBase(_protocalType, ProtoBuf_Serializer(data));
 }