服务器接入系统实现碰到的问题
2012-07-02 22:18
183 查看
以tcpip为例。最早知道的服务方式是,为每个tcpip端口都提供一个线程进行服务器。不过在考虑到超过100个以上的连接,将会产生非常多的资源站中。
由于数据的特点是在同一时间并不是所有的会话都是活跃的,因此为每个会话提供一个专门服务的线程太过浪费。那么多个工作线程,一个通信处理线程将是很好的选择。
已有的tcpip除了select以外,就没有其他更好的办法。经过查找资料,在Windows下,iocp的编程模型,linux下的epoll编程模型,可以很好的监控端口的事件。当然还有其他平台下的编程接口,如kqueue,不过这次实现的主要针对Windows和linux平台,因此不考虑其他平台。
为了能够跨平台,需要将这两种平台的编程模型抽象为统一的接口。
在这个过程中,个人感觉linux的epoll模式相对来说更简单和直接。Windows模式下,需要考虑overlap编程架构,以及WSArecv的怪异调用方式。这两种方式类似RISC和CISC两种指令集的异同感觉。
今天先写到这里,下一次列出epoll和iocp结合后的抽象接口,重要代码以及针对Windows接口的意见。
由于数据的特点是在同一时间并不是所有的会话都是活跃的,因此为每个会话提供一个专门服务的线程太过浪费。那么多个工作线程,一个通信处理线程将是很好的选择。
已有的tcpip除了select以外,就没有其他更好的办法。经过查找资料,在Windows下,iocp的编程模型,linux下的epoll编程模型,可以很好的监控端口的事件。当然还有其他平台下的编程接口,如kqueue,不过这次实现的主要针对Windows和linux平台,因此不考虑其他平台。
为了能够跨平台,需要将这两种平台的编程模型抽象为统一的接口。
在这个过程中,个人感觉linux的epoll模式相对来说更简单和直接。Windows模式下,需要考虑overlap编程架构,以及WSArecv的怪异调用方式。这两种方式类似RISC和CISC两种指令集的异同感觉。
今天先写到这里,下一次列出epoll和iocp结合后的抽象接口,重要代码以及针对Windows接口的意见。
相关文章推荐
- 虚拟机做服务器实现无人值守安装系统的思考和问题
- 在使用JavaMail实现imap协议收取各种邮箱服务器的邮件的时候,碰到了几个比较郁闷的问题
- IOS8系统下,APP开发的不同,及碰到的问题收集
- 带精英策略的蚂蚁系统解决TSP问题matlab实现
- 在linux下实现简单聊天系统(三)服务器
- Linux 服务器集群系统实现方案详解
- 今天碰到的问题-服务器回环
- 企业级服务器设计与实现经验之插件系统基础篇
- Ubuntu系统执行apt-get update碰到的问题及解决
- 初探基于TCP的服务器/客户端结构的聊天系统(三)之表情聊天的实现
- 乱码问题, (文件下载功能时, 下载不下来,编码要和服务器系统编码一致
- Android 4.0.4系统在线升级实现过程中的一些问题总结
- 最右校招-服务器日志分析:一个十万行log统计问题的c语言代码的实现1
- 企业级服务器设计与实现经验之插件系统基础篇
- 给七期搭建机房收费系统服务器_解决多步OLEDB操作错误问题
- Cacti监控MySQL实现过程中碰到的问题解汇总
- 【转载】企业级服务器设计与实现经验之插件系统基础篇
- python 多线程服务器验证,实现断开重连,信号量解决主线程Ctrl+C不退出问题,多线程打印错行问题
- 二次开发Jumpserver,增加权限申请模块实现用户组归属,服务器及组授权,系统用户授权申请处理
- 关于实现ASP导出Excel文件开关可能会碰到的组件注册问题!