.Net异步Socket封装 一
2010-07-09 14:14
169 查看
既然要决定写一系列的文章,必定要有项目,OK 因为是网络开发 就名为 “Shu.Net” 然后再这个框架内依次添加相关的那内容。
Socket作为网络开发兄弟很熟悉,一切的网络程序的源泉,如:HTTP、FTP、包括自定义协议若干的服务器及客户端等。
既然是C/S程序,那么也上一张通用的Socket通讯流程图:
嘿嘿,所有的网络程序都逃不脱这个通讯流程。
由于是异步Socket开发,在这里需要详细了解.NET中的System.Net.Sockets下的Socket与SocketAsyncEventArgs两个类。
SocketAsyncEventArgs是.Net2.0后新添加的高性能的网络服务器而设计的,实际上底层就是采用IOCP实现的,所以在开发高并发异步通讯程序的时候比以前大大提高性能。
下面来看看咱们将要实现的基本目标,我画了一个很简单的图:
看吧,很简单吧!
TcpServers 这是我们将要封装的Tcp服务器类。
TcpServersListener 是Tcp服务器监听类。
TcpClients 是客户端类
TcpClientsConnect 客户端连接类
TcpSocketManager 这个是 客户端与服务器端可以通用的Tcp Socket 管理类
当然这时候大伙会说,内存池呢? Socket池呢? 客户端断线重连接呢? 你这玩意这么简单、这么垃圾,能用来干嘛。。。还说高性能呢。。。
嘿嘿,各位慢慢来嘛,咱们后边还有很长时间。。。一步一步往里面加嘛,这仅仅是基础结构! 我是把它分解了,这样显得结构清晰,不至于给人感觉胖大。。。
OK 结构图出来了,下节咱们来实现。。。
Socket作为网络开发兄弟很熟悉,一切的网络程序的源泉,如:HTTP、FTP、包括自定义协议若干的服务器及客户端等。
既然是C/S程序,那么也上一张通用的Socket通讯流程图:
嘿嘿,所有的网络程序都逃不脱这个通讯流程。
由于是异步Socket开发,在这里需要详细了解.NET中的System.Net.Sockets下的Socket与SocketAsyncEventArgs两个类。
SocketAsyncEventArgs是.Net2.0后新添加的高性能的网络服务器而设计的,实际上底层就是采用IOCP实现的,所以在开发高并发异步通讯程序的时候比以前大大提高性能。
下面来看看咱们将要实现的基本目标,我画了一个很简单的图:
看吧,很简单吧!
TcpServers 这是我们将要封装的Tcp服务器类。
TcpServersListener 是Tcp服务器监听类。
TcpClients 是客户端类
TcpClientsConnect 客户端连接类
TcpSocketManager 这个是 客户端与服务器端可以通用的Tcp Socket 管理类
当然这时候大伙会说,内存池呢? Socket池呢? 客户端断线重连接呢? 你这玩意这么简单、这么垃圾,能用来干嘛。。。还说高性能呢。。。
嘿嘿,各位慢慢来嘛,咱们后边还有很长时间。。。一步一步往里面加嘛,这仅仅是基础结构! 我是把它分解了,这样显得结构清晰,不至于给人感觉胖大。。。
OK 结构图出来了,下节咱们来实现。。。
相关文章推荐
- 跨平台的游戏客户端Socket封装
- 自己封装的Socket组件,实现服务端多进程共享Socket对象,协同处理客户端请求
- 关于 封装 linux socket 类时遇到的问题,及解决办法,
- TCP/Socket学习---TCP/IP协议栈与数据包封装
- Java socket通信已经被封装好了主要使用两个类ServerSocket 和Socket (2)
- 使用socket封装库-waisock编程入门
- socket通讯是使用第三方库还是手工封装操作系统api
- 用流来封装SOCKET通信的一种方法
- 基于OkHttp和RxJava封装的Socket长连接开源库
- Windows Practice_Socket 错误封装
- 一个简单的socket封装
- C/S架构移动网络Socket API接口 Socket网络库 xNet框架介绍(C++封装) Demo演示示例
- 支持SSL的封装类--CAsyncSocketEx
- Socket编程实践(7) --Socket-Class封装(改进版v2)
- Socket编程实现文件的传输II(封装)
- c++ 跨平台封装socket
- Socket封装3
- Socket封装10
- C封装的Socket,激活GPRS来获取网络访问权限
- IOS AsyncSocket封装、长连接