예제 #1
0
        /// <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);
                    }
                }
            }
        }
예제 #2
0
        /// <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();
            }
        }
예제 #3
0
 public void ReadEventHandler(object sender, NetworkVirtualTerminalReadEventArgs e)
 {
     Console.WriteLine("《文字列受信》" + e.ReadStringBuilder.ToString());
     this.m_RecvString.Append(e.ReadStringBuilder.ToString());
     this.OnWaitStringNotify.Set();
 }