コード例 #1
0
 /// <summary>
 /// データ受信イベント
 /// </summary>
 protected virtual void OnUDPDataReceived(UDPDataReceivedEventArgs e)
 {
     if (ReceiveEvent != null)
     {
         ReceiveEvent(this, e);
     }
 }
コード例 #2
0
        /// <summary>
        /// ソケット受信時Callback
        /// </summary>
        /// <param name="AR"></param>
        private void ReceiveCallback(IAsyncResult ar)
        {
            //IAsysncResultからUDPClientとIPEndPointを受け取る
            UdpClient  uc  = ((UdpState)(ar.AsyncState)).client;
            IPEndPoint iep = ((UdpState)(ar.AsyncState)).endPoint;

            try
            {
                Byte[] receivedBytes          = uc.EndReceive(ar, ref iep);
                string receivedStr            = Encoding.ASCII.GetString(receivedBytes);
                UDPDataReceivedEventArgs args = new UDPDataReceivedEventArgs();
                args.Address    = iep.Address;
                args.PortNumber = iep.Port;
                args.Message    = receivedStr;
                OnUDPDataReceived(args);

                //受信待ち再開
                udpState.client.BeginReceive(new AsyncCallback(ReceiveCallback), udpState);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: Kaz-su/UdpSampleApp
 /// <summary>
 /// logTextBoxにUDPのEvent内容を追加する
 /// </summary>
 /// <param name="e"></param>
 void AppendUdpEvent(UDPDataReceivedEventArgs e)
 {
     logTextBox.AppendText(e.Address + " : " + e.Message + Environment.NewLine);
 }
コード例 #4
0
ファイル: Form1.cs プロジェクト: Kaz-su/UdpSampleApp
 private void OnUDPDataReceived(object sender, UDPDataReceivedEventArgs e)
 {
     Invoke(new AppendUdpEventDelegate(AppendUdpEvent), e);
 }