C#里实现简单的异步TCP服务器
admin
2024-03-04 03:23:41
0

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

相关内容

热门资讯

距海最远国青年P图看海:撒哈拉... 当全世界都在晒日落海滩,他们只能在45℃热浪中P一张椰子树——这不是段子,这是乍得青年的日常。 🔥 ...
【新闻】护肾即环保——同济医院... 2026年3月12日是世界肾脏日,在这个特别的日子里,1118位线上网友与社区居民通过线上、线下渠道...
“健康中原行·大医献爱心”活动... 3月18日至20日,“健康中原行·大医献爱心”志愿服务专项行动先后走进河南孟州、济源,来自北京及河南...
日照市“3・24 世界防治结核... 齐鲁晚报·齐鲁壹点 卢俊豪 通讯员 何乃玲 阳春三月,守护同行。在第 31 个 “世界防治结核病日”...
伊朗媒体:伊朗军方称向美航母发... 中新网3月25日电 据伊朗法尔斯通讯社25日报道,伊朗军方称,伊朗军队已发射导弹,对美国“亚伯拉罕·...
伊朗海军:已发射导弹打击美国“... 据伊朗迈赫尔通讯社25日报道,伊朗海军发射导弹,对美国“亚伯拉罕·林肯”号航母实施了打击,迫使其改变...
原创 俄... 中东局势升级、特朗普放松对俄制裁,让俄罗斯狠狠发了一笔战争财,而在另一方面,特朗普却对俄罗斯等国可能...
特朗普支持率降至第二任期以来最... 每经AI快讯,据CCTV国际时讯,益普索集团3月24日公布的一项民意调查显示,美国总统特朗普的支持率...
美国无视欧洲盟友“止战”呼声 ... 新华社北京3月25日电 法国和德国高层日前指责,美国军事打击伊朗前并未知会盟友,且战事外溢导致后者遭...
山阳县:水质监测网络构建,守护... 水,作为生命之源、生产之要和生态之基,始终是人类生存与发展的重要保障。在当今社会,保护水环境的安全显...