用完成端口(IOCP)实现一个简单的服务器框架
来源:互联网 发布:淘宝网电脑客户端 编辑:程序博客网 时间:2024/05/21 11:18
用完成端口(IOCP)实现一个简单的服务器框架
关键字: iocp serverIOCP 对于高并发的应用程序提供了良好的支持,使得开发高并发的应用程序的难度降低了很多。
IOCP 作为系统底层的 API ,保持了尽可能高的灵活性,对于很多复杂的情况,IOCP 也一样适用。
这种灵活性是一种双刃剑,对于复杂的情况,没有这种灵活性就没有办法完成工作。
但是对于简单的情况,这种灵活性就带来了额外的负担。
这里将要提到的这个服务器框架(spserver/iocp版),主要是针对以下的这几种典型的应用程序
1.echo/http 类型,server 不需要在多个 client 之间转发消息
2.chatroom 类型,server 在多个 client 之间转发消息
在使用 IOCP 来实现这两类应用程序的时候,会遇到一些共同的问题
1.当连接断开的时候,在 server 端为这个连接分配的资源如何妥善地进行释放
2.如何为每一个 IO 操作设定一个超时时间,以使得 server 能够更好地了解每个连接的当前情况
spserver 通过使用 hash 表的方式来解决资源释放的问题,具体的讨论可以参考
http://groups.google.com/group/dev4server/browse_thread/thread/29a91064931a628e
spserver 通过使用类似 libevent 的 min-heap 来解决 IO 操作超时的问题,具体可以参考
http://groups.google.com/group/dev4server/browse_thread/thread/0978e2e1a5c8e2fb
在上一个版本(0.9)中,spserver 在 windows 平台还是基于 libevent + pthread-win32 来实现的。
最新版本(0.9.1),在 windows 平台改成使用 IOCP + Windows Thread 来重新实现。
最新版本在 Windows 平台已经不再需要依赖第三方的库了。
主页和下载地址
http://code.google.com/p/spserver/
http://spserver.googlecode.com/files/spserver-0.9.1.src.tar.gz
关于 spserver 更多的介绍,请参考
http://iunknown.javaeye.com/blog/59804
IOCP 作为系统底层的 API ,保持了尽可能高的灵活性,对于很多复杂的情况,IOCP 也一样适用。
这种灵活性是一种双刃剑,对于复杂的情况,没有这种灵活性就没有办法完成工作。
但是对于简单的情况,这种灵活性就带来了额外的负担。
这里将要提到的这个服务器框架(spserver/iocp版),主要是针对以下的这几种典型的应用程序
1.echo/http 类型,server 不需要在多个 client 之间转发消息
2.chatroom 类型,server 在多个 client 之间转发消息
在使用 IOCP 来实现这两类应用程序的时候,会遇到一些共同的问题
1.当连接断开的时候,在 server 端为这个连接分配的资源如何妥善地进行释放
2.如何为每一个 IO 操作设定一个超时时间,以使得 server 能够更好地了解每个连接的当前情况
spserver 通过使用 hash 表的方式来解决资源释放的问题,具体的讨论可以参考
http://groups.google.com/group/dev4server/browse_thread/thread/29a91064931a628e
spserver 通过使用类似 libevent 的 min-heap 来解决 IO 操作超时的问题,具体可以参考
http://groups.google.com/group/dev4server/browse_thread/thread/0978e2e1a5c8e2fb
在上一个版本(0.9)中,spserver 在 windows 平台还是基于 libevent + pthread-win32 来实现的。
最新版本(0.9.1),在 windows 平台改成使用 IOCP + Windows Thread 来重新实现。
最新版本在 Windows 平台已经不再需要依赖第三方的库了。
主页和下载地址
http://code.google.com/p/spserver/
http://spserver.googlecode.com/files/spserver-0.9.1.src.tar.gz
关于 spserver 更多的介绍,请参考
http://iunknown.javaeye.com/blog/59804
- 用完成端口(IOCP)实现一个简单的服务器框架
- 用完成端口(IOCP)实现一个简单的服务器框架
- 用完成端口(iocp) 写的一个简单的服务端例子
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- 一个简单的IOCP(IO完成端口)服务器/客户端类(英文版)
- 一个简单的IOCP(IO完成端口)服务器/客户端类(中文版)
- 一个简单的IOCP(IO完成端口)服务器/客户端类(1/2)
- 一个简单的IOCP(IO完成端口)服务器/客户端类(2/2)
- 一个简单的IOCP(IO完成端口)服务器/客户端类
- 一个简单的IOCP(IO完成端口)服务器/客户端类
- 一个简单的IOCP(IO完成端口)服务器/客户端类
- 一个简单的IOCP(IO完成端口)服务器/客户端类(1/2)
- 一个简单的IOCP(IO完成端口)服务器/客户端类
- 一个简单的IOCP服务器/客户端类
- 一个简单的IOCP服务器实例
- 一个简单的IOCP服务器/客户端类
- IOCP完成端口的一个简单封装类
- JSF 与 JavaScript 用 A4J 完成前台后台数据交互
- SQL通配符
- SUN xVM direct IO one pager
- ORACLE中的PCTFREE和PCTUSED
- Linux 下读XML 的类
- 用完成端口(IOCP)实现一个简单的服务器框架
- 关于MySQL驱动程序JAR包放的地址
- 获得“未设定div高度的”div的高度
- asp.net环境下处理xml排序
- 完成端口中的单句柄数据结构与单IO数据结构的理解与设计
- 经典的SQL文sql
- WebService.htc文件应用
- java对excel文件的读写操作,这次是丰富的属性设置
- 金蝶实习(七)