看到今天又支持SP1的AsyncCTP下载了,下载试用了一下,顺便写了一个EchoServer。

    static void Main(string[] args)
    {
        var listener = new TcpListener(new IPEndPoint(IPAddress.Loopback, 3000));

listener.Start();
        while (true)
        {
            var client = listener.AcceptTcpClient();

TaskEx.Run(async () =>
                {
                    using (var stream = client.GetStream())
                    using (var writer = new StreamWriter(stream) { AutoFlush = true })
                    using (var reader = new StreamReader(stream))
                    {
                        var line = string.Empty;
                        while ((line =  await reader.ReadLineAsync()) != null)
                        {
                            await writer.WriteAsync(">>> " + line + Environment.NewLine);
                        }
                        Console.WriteLine("connection closed");
                    }
                });
        }
    }

基本上和用同步的方式差不多,非常直接。

用AsyncCtp实现一个简单的EchoServer相关推荐

  1. 聊聊高并发(十六)实现一个简单的可重入锁

    可重入锁指的是假设一个线程已经获得了一个锁,那么它能够多次进入这个锁,当然前提是线程须要先获得这个锁. 可重入锁是最常使用的锁.Java的内置锁就是可重入锁,使用synchronizedkeyword ...

  2. 用php做一个简单的汇率,vue实现简单实时汇率计算功能

    最近在自己摸索vue的使用,因为相对于只是去看教程和实例,感觉不如自己动手写一个demo入门来的快.刚好看到小程序中有一个简单但是很精致的应用极简汇率,而且它的表现形式和vue的表现形式很像,于是想着 ...

  3. python编写赛车游戏单机版_使用Python中OrderedDict模拟一个简单的竞速游戏排名

    上一篇,我们梳理了Python中关于字典排序的一些常用方法(杂乱无章的数据结构如何进行排序,简明讲述Python字典排序那些事).其中,我们讲到了Python的collections模块中的Order ...

  4. 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...

    说明 如果我们要编写一个简单的 PHP 脚本,需要学习哪些基础知识呢? PHP 基础 PHP 脚本可放置于文档中的任何位置. 标准 的 PHP 脚本以 <?php 开头,以 ?> 结尾: ...

  5. 【javamatlab】以一个简单的例子实现java和matlab混编

    目录 使用环境: MATLAB: matlab代码: 将matlab代码打包: eclipse: jar包配置: 使用jar包: 使用环境: jdk8(ide使用eclipse2019-6).matl ...

  6. 一个简单的slider滑块组件

    2019独角兽企业重金招聘Python工程师标准>>> 我们先来看一张图片: 要实现这样的效果我们有很多种方法,比如直接使用<input type="range&qu ...

  7. 用 cooking 搭建一个简单又优雅的 Vue 项目开发环境 (入门篇)

    本文适合 Vue 的初学者,以及对 webpack 不熟悉的同学阅读.前提是你要会用基本的命令行. Node 和 NPM,以及掌握 ES2015 的基础知识.本文都是在 macOS 环境下运行,要求使 ...

  8. Directx11教程(6) 画一个简单的三角形(2)

    在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变,如下图所示: 这是因为我们改变了窗口大小,但后缓冲大小在程序初始化时候, ...

  9. python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库

    python如何编写数据库 MySQL, PostgreSQL, Oracle, Redis, and many more, you just name it - databases are a re ...

最新文章

  1. Docker+Jenkins+Nginx+Spring Boot 自动化部署项目
  2. 疯子的算法总结(二) STL Ⅰ 算法 ( algorithm )
  3. 【HDU - 3974】 Assign the task (dfs序 + 线段树维护 区间更新+ 单点查询)
  4. Change Jenkins time zone
  5. 写在国产接口管理工具ApiPost 5.2.5发布后的一些话
  6. B00008 C++实现的大整数计算(一)
  7. MyBatis官方文档——XML配置部分
  8. Java Map是否有序?
  9. 网络io,select,poll与epoll的初步认识
  10. 软件测试零基础入门好学吗?
  11. 如何进行用户画像分析
  12. 焦点弦的垂直平分线和轴的交点到焦点的距离和焦点弦的距离之比为二分之e
  13. 论二级域名收集的各种姿势
  14. 送你一个励志故事—掌握这些你也可能拿到腾讯offer
  15. C++ strcpy函数的使用
  16. 电源滤波电容10UF 和0.1UF
  17. 无刷直流电机的PWM调制方式介绍
  18. 搜索导航HTML,CSS 带搜索导航栏的示例代码
  19. UE4 第一人称射击制作流程:05(图文)制作从Idle向前跑的动画融合
  20. 【转】“数据提供程序或其他服务返回 E_FAIL 状态” 或者 Data provider or other service returned an E_FAIL status.

热门文章

  1. 高端服务器CPU详细图解
  2. Github 上 36 个最实用的 Vue 开源库
  3. java二叉树 最大值_leetcode刷题笔记-654. 最大二叉树(java实现)
  4. java finereport_java报表FineReport_JS整理
  5. Spring 的设计初衷
  6. Spring-Cloud中的统一配置中心
  7. RabbitMQ入门-发送消息机制的介绍
  8. Maven的依赖管理
  9. SpringAOP概念
  10. FactroyBean方式配置bean