示例#1
0
 private void ExcuteOnChangeSessionConnect(CNetworkSession pSession, ENetworkConnectionState eState)
 {
     if (p_Event_OnChange_SessionConnection != null)
     {
         p_Event_OnChange_SessionConnection(p_mapNetworkSession[pSession.p_strIP], eState);
     }
 }
示例#2
0
    public void DoInitSession(System.Action <CNetworkSession, ENetworkConnectionState> OnConnectionStateChange)
    {
        p_bIsInit_PacketHeader   = true;
        _OnConnectionStateChange = OnConnectionStateChange;

        // 이벤트 호출을 위해 강제로 세팅
        p_eConnectionState = ENetworkConnectionState.연결끊김;
        DoChangeConnectionState(ENetworkConnectionState.새로접속);
    }
示例#3
0
 public void DoChangeConnectionState(ENetworkConnectionState eConnectionState)
 {
     if (p_eConnectionState != eConnectionState)
     {
         p_eConnectionState = eConnectionState;
         if (_OnConnectionStateChange != null)
         {
             _OnConnectionStateChange(this, eConnectionState);
         }
     }
 }
示例#4
0
    /// <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());
    }