private void OnMessageReceived(IAsyncResult asrAsyncResult)
    {
        UdpState   udsState    = (UdpState)(asrAsyncResult.AsyncState);
        UdpClient  udpClient   = udsState.udpClient;
        IPEndPoint eptEndPoint = udsState.eptEndPoint;

        byte[] receiveBytes  = udpClient.EndReceive(asrAsyncResult, ref eptEndPoint);
        string receiveString = Encoding.ASCII.GetString(receiveBytes);

        //indicate coms channel is open
        if (m_bDataChannelConnected == false)
        {
            m_bDataChannelConnected = true;

            //send message back confirming data channel is open
            SendDataViaDataChannel(c_strConnectionOpenMessage);

            //indicate that connection is open
            LocalDataChannelReady?.Invoke();
        }

        if (receiveString != c_strConnectionOpenMessage)
        {
            DataFromDataChannelReady?.Invoke(receiveString);
        }

        //restart listening for messages
        udpClient.BeginReceive(new AsyncCallback(OnMessageReceived), udsState);

        Console.WriteLine($"Received: {receiveString}");
    }
Exemple #2
0
 public static extern bool RegisterOnLocalDataChannelReady(int peerConnectionId,
                                                           LocalDataChannelReady callback,
                                                           IntPtr userData);