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}"); }
public static extern bool RegisterOnDataFromDataChannelReady(int peerConnectionId, DataFromDataChannelReady callback, IntPtr userData);