资源介绍
1. 连接oracle时,目录中不能有()字符,否则ADO是无法连接数据库的
修改:
2.1
去掉TCPChannel的BuildPacket函数,改成直接由OnRecv回调函数返回实际数据
去掉UDPChannel的Response函数,改成直接由内部处理
2.2 修改TCPChannel类,实现同步调用接口
定义IRPC接口用来处理同步调用的被调用端
定义Bind函数用来绑定IRPC接口的实例
定义CallEx函数用来实现用户同步调用
2.3 添加bInit变量,用于设置初始化和关闭状态。
设置此变量的目的主要是用来控制,在关闭了socket之后,后续的任何投递都不执行。
修改了IRPC接口名称为IRemoteProcCall,并且调整了部分结构体名称,如RPC相关的结构体,
组合包相关的结构体,以及P2P相关的结构体。
修改TCPChannel类的接口函数Bind成BindEx,使之与TCPChannel的其他接口统一命名。
修改测试Demo,添加多发选项
修改DataType.h中的内存块大小定义
封装临界区类,信号量类
修改TCPListener接口类中的EnumSockets接口,添加pArg参数
Socket类添加ReUseAddr函数,用来设置端口重用
TCPSocket接口类添加GetListener接口用来获得链接管理对象
修改Demo实例中的TCP客户端部分,增加可更改客户端连接数
2.4 添加UDT支持
修改UDPChannel接口类,添加UDT支持接口函数
添加日志支持
添加接口类ILogger,用来实现对日志的输出
添加x64的编译环境
添加部分WARN级别的日志输出
添加C接口,方便非C++语言应用
UDT添加特性,关闭UDT时,给对端发送断线信息,通知对端断线
UDT提高效率,UDT句柄部分改用读写锁来控制,以提高效率
修改OnSend和OnSendTo的行为
修改过的BUG:
1. 数据发送时,如果数据大小正好是MAX_PACKET_SIZE个字节的话,数据发送不出去,在计算包大小时,边界值没处理好。
2. IOCPUnhandledException函数内部逻辑错误,没有关联到自己的异常处理函数中,导致即使调用成功,程序异常了,也无法写dump文件。
3. 修复IOCP UDP Release模式下不能正常运行的BUG。由于传递的输出参数使用了局部变量导致的问题
4. 修复UDT发送时,计算尾包大小错误
5. 修复UDT快速发送错误
6. 修改Queue关闭时,如果有线程正在等待信号,会导致线程死等
- 上一篇: IOCP Server
- 下一篇: Apache Tomcat6.0.32 API 参考手册