private void ExcuteOnChangeSessionConnect(CNetworkSession pSession, ENetworkConnectionState eState) { if (p_Event_OnChange_SessionConnection != null) { p_Event_OnChange_SessionConnection(p_mapNetworkSession[pSession.p_strIP], eState); } }
public void DoInitSession(System.Action <CNetworkSession, ENetworkConnectionState> OnConnectionStateChange) { p_bIsInit_PacketHeader = true; _OnConnectionStateChange = OnConnectionStateChange; // 이벤트 호출을 위해 강제로 세팅 p_eConnectionState = ENetworkConnectionState.연결끊김; DoChangeConnectionState(ENetworkConnectionState.새로접속); }
public void DoChangeConnectionState(ENetworkConnectionState eConnectionState) { if (p_eConnectionState != eConnectionState) { p_eConnectionState = eConnectionState; if (_OnConnectionStateChange != null) { _OnConnectionStateChange(this, eConnectionState); } } }
/// <summary> /// /// </summary> /// <typeparam name="Packet"></typeparam> /// <param name="iPort"></param> /// <param name="pPacket"></param> /// <param name="pPacketHeader"></param> /// <param name="eConnectionStateRequest"></param> /// <param name="arrSession"></param> /// <returns>패킷 송신에 성공한 세션들</returns> public Class_SessionDerived[] DoSendPacket_OrNull <Packet>(int iPort, Packet pPacket, ENetworkConnectionState eConnectionStateRequest, params Class_SessionDerived[] arrSession) where Packet : INetworkPacket { if (arrSession == null || arrSession.Length == 0) { return(null); } byte[] arrSendByte = CombineBuffer_Header_And_Packet(pPacket); _listSessionTemp.Clear(); for (int i = 0; i < arrSession.Length; i++) { if (arrSession[i].p_eConnectionState != eConnectionStateRequest) { continue; } SendPacket(arrSession[i], arrSendByte, pPacket, iPort); _listSessionTemp.Add(arrSession[i]); } return(_listSessionTemp.ToArray()); }