/// <summary> /// 非同期受信のコールバックメソッド /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReciveEvent(object sender, TelnetClientReciveEventArgs e) { // 受信判定 if (e.Size > 0) { // 受信データオブジェクト MemoryStream memoryStream = new MemoryStream(); // ネゴシエーション this.Negotiation(e.Stream, memoryStream); // MemorySteramのサイズ判定 if (memoryStream.Length > 0) { // ロギング this.Logger.Info(this.RemoteEncoding.GetString(memoryStream.ToArray())); // 受信通知 if (this.OnRead != null) { // パラメータ生成 NetworkVirtualTerminalReadEventArgs args = new NetworkVirtualTerminalReadEventArgs(); args.StringBuilder.Append(this.RemoteEncoding.GetString(memoryStream.ToArray())); // イベント呼出し this.OnRead(this, args); } } } }
/// <summary> /// 読込イベントハンドラ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReadEventHandler(object sender, NetworkVirtualTerminalReadEventArgs e) { // 受信文字列追加 lock (this.m_ReadString) { // 受信文字列追加 this.m_ReadString.Append(e.StringBuilder.ToString()); // 受信通知 this.OnReadNotify.Set(); } }
public void ReadEventHandler(object sender, NetworkVirtualTerminalReadEventArgs e) { Console.WriteLine("《文字列受信》" + e.ReadStringBuilder.ToString()); this.m_RecvString.Append(e.ReadStringBuilder.ToString()); this.OnWaitStringNotify.Set(); }