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

相关内容

热门资讯

法国遭遇创纪录高温 40人水中... 海外网6月24日电据路透社报道,法国政府23日通报,为躲避创纪录高温,18日以来已有40人意外溺水身...
哥伦比亚总统选举在即,两名竞选... 5月17日消息,哥伦比亚总统选举临近之际,参选人阿韦拉多·德拉埃斯普列亚的竞选团队两名工作人员15日...
网传“考驾照难度大增”不实 5月17日消息,最近,“驾考难度大增”的消息在网上流传,其实,从5月1日起实施的,是由国家市场监督管...
2026世界电信和信息社会日大... 5月17日消息,2026世界电信和信息社会日大会在湖北省武汉市召开。工信部总工程师钟志红表示,近年来...
朝鲜“我的故乡”女足代表团抵达... 5月17日消息,朝鲜“我的故乡”女足代表团当地时间17日下午乘机抵达韩国,代表团由27名运动员以及1...
张雪机车车手德比斯说希望能在中... 5月17日消息,5月16日,在刚刚结束的2026世界超级摩托车锦标赛捷克站WorldSSP组别第一回...
“延长停火”后,以色列大规模空... 5月17日消息,以色列与黎巴嫩已宣布“延长停火”,但黎巴嫩南部仍炮火不断。以军5月16日对黎南部地区...
市场监管总局明确34项重点工作... 5月17日消息,市场监管总局印发《市场监管部门促进民营经济发展壮大2026年工作要点》,提出34项重...
2025年中国绿证交易价格总体... 5月17日消息,国家能源局电力业务资质管理中心组织编制了《中国绿色电力证书发展报告(2025)》。2...
广药集团旗下将新增一家上市公司... 5月17日消息,据广药集团消息,广药集团旗下全资子公司广州广药资本有限公司(“广药资本”)与达安基因...