C#里实现简单的异步TCP服务器

在前面实现阻塞式的TCP服务器,比较容易理解,解决简单的问题够用了。
但是如果面对多个连接,多个客户端的处理,就不行了。
这时候就要采用异步的TCP服务器,或者多任务,多线程的服务器。

在这里采用了TcpListener来接收网络连接,采用TcpClient来与客户端进行通讯。
由于可以同时连接多个客户端,那么就需要定义一个对象来表示这个连接,这个对象就是
TCPClientState。

由于本类进行封装,外面又需要对数据进行处理,那么通过什么方式来通知外面呢?
在这里通过事件来进行触发。所以要使用这个类,就必须创建对应的事件响应函数,
比如连接、断开连接、接收数据、数据发送完成等等。

所以创建下面的事件响应代码:
 //有连接进来        
        public void ClientConnected(object sender, EventArgs e)
        {
            AsyncEventArgs args = e as AsyncEventArgs;
            System.Diagnostics.Debug.WriteLine("ClientConnected");
        }
        //有连接断开
        public void ClientDisconnected(object sender, EventArgs e)
        {
            AsyncEventArgs args = e as AsyncEventArgs;
            System.Diagnos

C#里实现简单的异步TCP服务器相关推荐

  1. asio(八)、异步TCP服务器

    官网教程:https://think-async.com/Asio/asio-1.26.0/doc/asio/tutorial/tutdaytime3.html 异步TCP服务器 int main() ...

  2. Python标准库socketserver使用线程混入实现异步TCP服务器

    推荐图书: <Python程序设计开发宝典>,ISBN:978-7-302-47210-0,董付国,清华大学出版社 图书详情(京东): 董付国老师所有图书均提供配套教学资源. ====== ...

  3. python写tcp服务器_用Python实现一个简单的多线程TCP服务器的教程

    最近看<python核心编程>,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研究了一下如何在server端通过启动不同的线程(进程)来实现 ...

  4. python tcp服务器 多线程_Python中的多线程TCP服务器

    我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...

  5. libev实现简单的tcp服务器

    本文将介绍如何用libev创建一个简单的tcp echo server服务器,实现一个简单的异步(asynchronous)tcp server的功能,该server接收客户端连接,然后读取已连接客户 ...

  6. 基于Python Tkiner、thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信

    基于Python Tkiner.thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信 完整代码下载地址:基于Python Tkiner.thread与soc ...

  7. Mina、Netty、Twisted一起学(一):实现简单的TCP服务器

    MINA.Netty.Twisted为什么放在一起学习?首先,不妨先分别看一下它们官方网站对其的介绍: MINA: Apache MINA is a network application frame ...

  8. 【TCP服务器和客户端的简单编写】

    TCP服务器和客户端的简单编写 TCP简介 TCP是什么 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IE ...

  9. Boost:基于Boost的异步TCP回显服务器

    Boost:基于Boost的异步TCP回显服务器 实现功能 C++实现代码 实现功能 基于Boost的异步TCP回显服务器 C++实现代码 #include <cstdlib> #incl ...

最新文章

  1. 【Python】一文掌握Conda软件安装:虚拟环境、软件通道、加速solving、跨服务器迁移...
  2. Spring3整合Ibatis3配置
  3. php开发入门,PHP开发入门教程之面向对象
  4. 32和64位jvm_我应该使用32位还是64位JVM?
  5. 疯传社群源码v7.8.0 测试可用 修复绿色版
  6. Unity Shader之入门-helloworld
  7. 【转】VS2017的VSIX插件开发
  8. Spring事件监听Demo
  9. vue省市区三级选择的实现
  10. PostGIS导入shp数据
  11. CorelDRAWX4的VBA插件开发(十六)颜色配置文件设置与检测
  12. 区分 WDM驱动和NT驱动(有待继续思考)
  13. JVM内存结构(1.8)
  14. NYOJ -1364 (第十一届河南省赛)
  15. 取次花丛懒回顾,半缘修道半缘君。
  16. 什么是幂等,什么情况下需要幂等,如何实现幂等
  17. 一文带你了解步进电机的相关知识:相、线、极性和步进方式
  18. vue调用高德地图实现定位
  19. jmeter断言操作详解
  20. colorkey唇釉是否安全_colorkey唇釉安全吗-colorkey唇釉真假辨别

热门文章

  1. python实践-轩宇阅读网爬取全部小说
  2. 深度学习之 人脸生成 BEGAN TensorFlow 实现
  3. C/C++中结构体和类的区别
  4. [Unity学习笔记]2D游戏中的触碰/OnMouseDown
  5. 数字化品牌营销实训专家 李玮东老师
  6. Android实战-忘记密码案例
  7. 计划落空与犯错--写给宝宝
  8. 微信小程序录音上传php代码,小程序实现录音上传功能
  9. 从零搭建阿里云托管版k8s集群-容器日志采集(八)
  10. 电磁场第一章——矢量分析工具 复习笔记