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

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#里实现简单的异步TCP服务器相关的知识,希望对你有一定的参考价值。

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服务器的主要内容,如果未能解决你的问题,请参考以下文章

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

C# 异步 TCP 侦听器不取消循环

c#中tcp异步编程遇到异常问题,新手感觉很不得懂 希望大神能从浅显的角度帮我解答

求一个C#最简单的TCP传输信息例子(实现聊天和传送文件,再简单点实现聊天也行)

TCP套接字连接中同步与异步的优势

IASyncResult接口实现简单异步编程(C#)