/// <summary> /// データ受信イベントの処理を行います。 /// </summary> /// <param name="sender">イベントを送信したオブジェクトを指定します。</param> /// <param name="e">受信データを含むイベント引数を指定します。</param> private void CommunicatorDataReceived(object sender, DataReceivedEventArgs e) { var d = this.Dispatcher; if (!d.CheckAccess()) { d.Invoke(()=> this.CommunicatorDataReceived(sender, e)); } else { var communicator = sender as TcpCommunicator; if (communicator != null) { try { var data = Encoding.UTF8.GetString(e.ReceivedData); this.AddLog("クライアント" + (int)communicator.Tag + ":" + data); communicator.Send(e.ReceivedData); } catch (Exception ex) { var msg = "受信データの変換に失敗しました。(" + ex.GetType().ToString() + ":" + ex.Message + ")"; this.AddLog(msg, LogRecord.WarningLevel.Error, ex.StackTrace); } } } }
/// <summary> /// データ受信イベントを発生させます。このメソッドは派生クラスでオーバーライドできます。 /// </summary> /// <param name="e">受信データを含むイベント引数を指定します。</param> protected virtual void OnDataReceived(DataReceivedEventArgs e) { if (this.DataReceived != null) { this.DataReceived(this, e); } }
/// <summary> /// データ受信イベントの処理を行います。 /// </summary> /// <param name="sender">イベントを送信したオブジェクトを指定します。</param> /// <param name="e">受信データを含むイベント引数を指定します。</param> private void TcpCommunicatorDataReceived(object sender, DataReceivedEventArgs e) { var d = this.Dispatcher; if (!d.CheckAccess()) { d.Invoke(() => this.TcpCommunicatorDataReceived(sender, e)); } else { try { var data = this.encoding.GetString(e.ReceivedData); this.AddLog("受信データ:" + data); } catch (Exception ex) { var msg = "受信データの変換に失敗しました。(" + ex.GetType().ToString() + ":" + ex.Message + ")"; this.AddLog(msg, LogRecord.WarningLevel.Error, ex.StackTrace); } } }