[C#]事件驱动的SOCKET类
来源:互联网 发布:搞笑拍照软件 编辑:程序博客网 时间:2024/05/18 16:54
使用事件驱动SOCKET的好处是可以封装SOCKET的收发包,由于是线程接收的包,再请求的上层的事件,所以,在主程序中要注意界面上的委托显示。
如果有使用过Delphi的人就会发现,在Delphi中的事件驱动也是使用类似的方法,叫事件挂接吧,我的同事这样和我说的。不管怎样,语言总是可以贯通的。
以下是SOCKET类的部分代码,让注释说话吧:
在主程序中,只要申明,并指向一下事件,就可以让SOCKET包处理变得非常的简单:
把包接收事件都写在client_RecEvent中,e.DataPack就是接收的包。
把SOCKET事件,比如,断开重连,包异常等事件处理都写在client_SocketEvent中
小结
服务端的接收和转发也是类似的做法,只是申明的事件要多一些,这里就不赘述了。
在本例子中SOCKET类中由Thread_Read方法接收的包,处理的包是带有5个字节的包头的格式,不同的情况需要进行不同的接收处理,在接收过程中,还是可以获得许多异常事件,可以捕获SocketException,根据NativeErrorCode值进行有选择性的捕获,并提交上层事件,这里需要注意的是,有时候需要继续捕获其他异常,因为SocketException是不会捕获所有异常的。
补充
在实际运行中,本文的代码出现了一些问题,在后续的文章中,我将对这些问题进行修改:http://blog.csdn.net/much0726/archive/2009/08/22/4471830.aspx,本篇文章在我的思想挣扎下,还是没有删除掉,算是一个学习的过程吧。
- [C#]事件驱动的SOCKET类
- [C#]事件驱动的SOCKET类
- [C#]关于事件驱动的SOCKET类的优化
- c/c++里面的socket事件开发
- .NET 中自定义事件的驱动(C#)
- .NET 中自定义事件的驱动(C#)
- 基于事件驱动的lua--c/c++交互
- 【Little_things】事件驱动的带界面的Client/Server聊天小程序(java socket)
- 关于事件驱动学习三 使用select的socket callback模型
- 事件驱动下的类通信~
- 事件驱动的比较
- java的事件驱动
- IOS_UITableview的事件驱动
- 事件驱动的思考
- redis的事件驱动
- 写socket的“灵异事件”
- Gridview,Formview的事件驱动
- 事件驱动的程序开发
- Flex应用程序启动详解
- 自我介绍
- Video Telephony笔记
- 虚函数的内存布局(下)
- 大表格,多Form元素的提交 判断表单数据是否有被修改过
- [C#]事件驱动的SOCKET类
- Java代码编写的30条建议
- 电子书超级搜索下载地址
- js 面向对象编程(ajax)
- gridview添加删除确认对话框
- VSTS+Sharepoint+Project开发平台之Sharepoint操作图解
- 取中英文混合的字串的长度
- PCM
- Weblogic如何调用TUXDEO服务