public void handleRecv(FFSocket ffsocket, string strData) { m_strRecvData += strData; while (m_strRecvData.Length >= 8) { byte[] btValue = System.Text.Encoding.UTF8.GetBytes(m_strRecvData); size = System.Net.IPAddress.NetworkToHostOrder(BitConverter.ToInt32(btValue, 0)); cmd = System.Net.IPAddress.NetworkToHostOrder(BitConverter.ToInt16(btValue, 4)); flag = System.Net.IPAddress.NetworkToHostOrder(BitConverter.ToInt16(btValue, 6)); if (m_strRecvData.Length < 8 + size) { break; } string strMsg = m_strRecvData.Remove(0, 8); if (strMsg.Length == size) { m_strRecvData = ""; } else { strMsg = strMsg.Remove(size); m_strRecvData = m_strRecvData.Remove(0, 8 + size); } m_funcMsgHandler(ffsocket, cmd, strMsg); } }
public void handleMsg(FFSocket ffsocket, Int16 cmd, string strMsg) { Console.WriteLine("handleMsg....{0}, {1}", cmd, strMsg.Length); if (cmd == 3) { FFNet.decodeMsg(m_brokerData, strMsg); Console.WriteLine("handleMsg....{0}, {1}", m_brokerData.Node_id, m_brokerData.Register_flag); if (m_brokerData.Register_flag == 1) { m_nNodeID = m_brokerData.Node_id;//! -1表示注册失败,0表示同步消息,1表示注册成功 } } }
public bool connectToBroker() { m_socketBroker = FFNet.connect(m_strBrokerIP, m_nBrokerPort, new SocketMsgHandler(handleMsg), new SocketBrokenHandler(handleBroken)); if (null == m_socketBroker) { return(false); } RegisterToBrokerReq reqMsg = new RegisterToBrokerReq(); reqMsg.Node_type = 2; reqMsg.Service_name = m_strServiceName; FFNet.sendMsg(m_socketBroker, 2, reqMsg); return(true); }
public static void sendMsg(FFSocket ffsocket, Int16 cmd, string strData) { int len = strData.Length; len = System.Net.IPAddress.HostToNetworkOrder(len); cmd = System.Net.IPAddress.HostToNetworkOrder(cmd); byte[] lenArray = BitConverter.GetBytes(len); byte[] cmdArray = BitConverter.GetBytes(cmd); byte[] resArray = new byte[2] { 0, 0 }; string strRet = System.Text.Encoding.UTF8.GetString(lenArray, 0, lenArray.Length); //Console.WriteLine("sendMsg {0}, {1}", strRet.Length, strData.Length); strRet += System.Text.Encoding.UTF8.GetString(cmdArray, 0, cmdArray.Length); //Console.WriteLine("sendMsg {0}, {1}", strRet.Length, strData.Length); strRet += System.Text.Encoding.UTF8.GetString(resArray, 0, resArray.Length); //Console.WriteLine("sendMsg {0}, {1}", strRet.Length, strData.Length); strRet += strData; ffsocket.asyncSend(strRet); }
public void handleBroken(FFSocket ffsocket) { m_funcBroken(ffsocket); }
public static void sendMsg <T>(FFSocket ffsocket, Int16 cmd, T reqMsg) where T : Thrift.Protocol.TBase { string strData = encodeMsg <T>(reqMsg); sendMsg(ffsocket, cmd, strData); }
public void handleBroken(FFSocket ffsocket) { }
public static void onBroken2(FFSocket ffsocket) { WriteLine("onBroken2...."); }
public static void onRecv2(FFSocket ffsocket, Int16 cmd, string strData) { Console.WriteLine("onRecv2....{0}, {1}", strData, cmd); }
public static void onRecv(FFSocket ffsocket, Int16 cmd, string strData) { Console.WriteLine("onRecv....{0}, {1}", strData, cmd); FFNet.sendMsg(ffsocket, cmd, strData); }