zoukankan      html  css  js  c++  java
  • 用Reactive Extensions实现一个简单的EchoServer

    在昨天的随笔Reactive Extensions学习里,我写了个简单的stream异步读操作的扩展封装。今天我用它来实现了一个简单的EchoServer: 

        //一个简单的异步echo server
        static void Main(string[] args)
        {
            var listener 
    = new TcpListener(new IPEndPoint(IPAddress.Loopback, 3000));
                
            listener.Start();
            
    while (true)
            {
                var client 
    = listener.AcceptTcpClient();

                var stream 
    = client.GetStream();
                var writer 
    = new StreamWriter(stream) { AutoFlush = true };
                var buffer 
    = new byte[1024];

                stream.ReadLinesAsync(buffer)
                    .Select(line 
    => ">>> " + line)
                    .Finally(client.Close)
                    .Subscribe(writer.WriteLine);
            }
        }

    代码非常精简,比起以前的异步架构来说精简了不少。后续有时间的话再尝试用它重写一下以前的MSN客户端看看效果怎么样。

  • 相关阅读:
    python基础(常量,数据类型,if)
    c字符串操作函数
    磁盘读写,合并排序字符串
    5个学生,3门成绩,输入信息,保存到文件
    关于MQTT、HTTP、WebService
    循环队列Circular Queue
    ISR中断服务程序
    PID控制
    Linux定时器接口
    Embedded Agent
  • 原文地址:https://www.cnblogs.com/TianFang/p/2012859.html
Copyright © 2011-2022 走看看