public void SetSessionId(ushort sid) { m_SessionId = sid; m_TempSendData = new FSPDataC2S(); m_TempSendData.vkeys.Add(new FSPVKey()); m_TempSendData.sid = sid; }
public void Receive(FSPDataC2S data) { if (m_RecvListener != null) { m_RecvListener(data); } }
public void Receive(FSPDataC2S data) { if (null != m_RecvListener) { m_RecvListener(data); } }
//------------------------------------------------------------ #region 设置通用参数 public void SetSessionId(ushort sid) { LOG_TAG_MAIN = "FSPClient_Main<" + sid.ToString("d4") + ">"; LOG_TAG_SEND = "FSPClient_Send<" + sid.ToString("d4") + ">"; LOG_TAG_RECV = "FSPClient_Recv<" + sid.ToString("d4") + ">"; LOG_TAG = LOG_TAG_MAIN; m_SessionId = sid; m_TempSendData = new FSPDataC2S(); m_TempSendData.vkeys.Add(new FSPVKey()); m_TempSendData.sid = sid; }
//==================================================================== //接收数据逻辑 private void OnRecvFromSession(FSPDataC2S data) { if (m_session.IsEndPointChanged) { m_session.IsEndPointChanged = false; m_hasAuthed = false; } if (m_RecvListener != null) { for (int i = 0; i < data.msgs.Count; i++) { m_RecvListener(this, data.msgs[i]); } } }
private void OnSessionReceive(FSPDataC2S data) { m_LastRecvTime = FSPServer.Instance.RealtimeSinceStartupMS; if (m_Session.IsEndPointChanged) { m_HasAuth = false; } if (m_RecvListener != null) { for (int i = 0; i < data.vkeys.Count; i++) { m_RecvListener(this, data.vkeys[i]); } } }
//------------------------------------------------------------ private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint) { FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer); FSPSession session = GetSession(data.sid); if (session == null) { //没有这个玩家,不理它的数据 return; } session.EndPoint = remotePoint; session.Receive(data); }
//------------------------------------------------------------ private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint) { FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer); FSPSession session = GetSession(data.sid); if (session == null) { Debuger.LogWarning(LOG_TAG_RECV, "DoReceive() 收到一个未知的SID = " + data.sid); //没有这个玩家,不理它的数据 return; } this.Log("DoReceive() Receive Buffer, SID={0}, IP={1}, Size={2}", session.Id, remotePoint, buffer.Length); session.EndPoint = remotePoint; session.Receive(data); }
//------------------------------------------------------------ private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint) { FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer); FSPSession session = GetSession(data.sid); if (session == null) { MyLogger.LogWarning(LOG_TAG_RECV, "DoReceive()", "unknown SID = " + data.sid); //player does not exist,reply nothing return; } this.Log("DoReceive() Receive Buffer, SID={0}, IP={1}, Size={2}", session.Id, remotePoint, buffer.Length); session.EndPoint = remotePoint; session.Receive(data); }
private void DoReceiveInMain() { m_RecvBufQueue.Switch(); while (!m_RecvBufQueue.Empty()) { var recvBufferRaw = m_RecvBufQueue.Pop(); int ret = m_Kcp.Input(recvBufferRaw, recvBufferRaw.Length); //收到的不是一个正确的KCP包 if (ret < 0) { Debuger.LogError("收到不正确的KCP包!Ret:{0}", ret); return; } m_NeedKcpUpdateFlag = true; for (int size = m_Kcp.PeekSize(); size > 0; size = m_Kcp.PeekSize()) { var recvBuffer = new byte[size]; if (m_Kcp.Recv(recvBuffer) > 0) { if (m_listener != null) { FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(recvBuffer); m_listener(data); } else { Debuger.LogError("找不到接收者!"); } } } } }
//------------------------------------------------------------ #region 设置通用参数 public void SetSessionId(uint sid) { m_TempSendData = new FSPDataC2S(); m_TempSendData.Vkeys.Add(new FSPVKey()); m_TempSendData.Sid = sid; }