IOCP 对于高并发的应用程序提供了良好的支持,使得开发高并发的应用程序的难度降低了很多。
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.4.src.tar.gz
关于 spserver 更多的介绍,请参考
http://iunknown.iteye.com/blog/59804
分享到:
相关推荐
用完成端口(IOCP)实现一个简单的socket服务器框架.zip
自己准备实现一个web服务器学习IOCP而封装的一个框架,能适应高并发(默认我设置是64个)连入及多client同时在线传输数据(最大测试到30000).包括TCP与UDP两种协议的IOCP封装实现。比较好的解决了掉线,死机,超时等...
//一个简单的使用例子 //连接远程服务器成功 或 接收到一个远程连接时,本函数将会被ioc.dll回调.在本函数中,应该向客户端列表中添加节点,记得加锁 // //2.s :套接字句柄,标志着一个新的连接 //3.u_addr:对端的IP...
无需IIS支持,仅需简单几个步骤即可完成部署。 利用WEB API功能灵活创建租户子平台。 每个租户平台拥有独立的WEB API端口权限功能,独立的MQTT服务器,独立的Web服务器、独立的MQTT服务器、独立的Socket TCP...
OPC转web API服务器框架源码。 集成iot,web api服务,这套带码是通过C#编写集成IOCP高性能高并发优势服务器服务源码。 带手机app测试demo源码 具体具备功能如下: 1、具备EF6+mssql数据库功能,可更改为MYSQL或...
⬤ 无需IIS支持,仅需简单几个步骤即可完成部署。 ⬤ 利用WEB API功能灵活创建租户子平台。 ⬤ 每个租户平台拥有独立的WEB API端口权限功能,独立的MQTT服务器,独立的Web服务器、独立的MQTT服务器、独立的Socket ...
服务器推荐参考实例serverex项目,注意,缺少客户端connect后,close的处理
c# 物联网平台服务器框架源码。集成iot,web api服务,这套带码是...4、加入了物联网设备标识,使一个4G DTU设备可以挂载多个485或232从站。 5、开放服务器接收源数据事件接口,使用时可以自定义协议以及扩展性更强。
在程序设计与实际应用中,Socket数据包接收服务器够得上一个经典问题了:需要计算机与网络编程知识(主要是Socket),与业务处理逻辑密切(如:包组成规则),同时还要兼顾系统运行的稳定、效率、安全与管理等。...
一个开源的高性能IOCP(完成端口)网络通信封装框架《HP-Socket》的使用实例,官方的DEMO只有MFC对话框的版本,对于刚接触这个框架的新手不太容易把代码移植到自己的项目。 此DEMO使用标准C++控制台来实现,对于刚...
一个开源的高性能IOCP(完成端口)网络通信封装框架《HP-Socket》的使用实例,官方的DEMO只有MFC对话框的版本,对于刚接触这个框架的新手不太容易把代码移植到自己的项目。 此DEMO使用标准C++控制台来实现,对于刚...
资源包含客户端和服务器C++源代码和工程文件,服务器和客户端通信使用UDP的NAT穿透原理,服务端采用iocp完成端口和多线程,客户端请求分发交给子线程,在子线程中完成业务逻辑,适用于UDP通信的服务器框架使用。
源代码中实现了Socket的六种IO模型,包括完成端口模型,包括服务器端和客户端,服务器端采用不同的socket IO模型,对网络编程学习具有很大的借鉴意义。源码编译器为VS2003,可用VS2003、05、08、10等打开。
其实,很简单,我们让自己的服务器自动同步了时间(一般都默认开启着),然后提供一个http接口即可,用自己的最稳定。网页_访问 (“http://192.168.1.1:6680/api/sup/bjtime/10 ”)我自己使用本框架已应用的领域: ...