摘要: DIOCP3兼容DIOCP1的,有些属性做了修改 DIOCP3, uIOCPConsole没有了, uMemPool没有了 1.DIOCP1,代码: DIOCP3中去掉TIOCPContextFactory, 可以直接往TIocpConsole(uIocpCentre单元中)对象上注册。TiocpConsole有对应的方法 这样可以每个TIocpConsole有自己独立的编码和解... 阅读全文
posted @ 2014-08-25 21:58 D10.天地弦 阅读(797) 评论(0) 推荐(0) 编辑
摘要: TIOCPConsole是继承至TIocpTcpServer,做了管理和调用编码和解码器器的功能。可以通过向他注册编码和解码器可以忽略粘包的问题。 这样如果TIOCPConsole客户端必须按照一定的编码器和解码器的协议发送数据和接受数据, diocpCoders中已经有了几种编码和解码器, 比较常用的TDIOCPStreamCoder 他的格式是Pack_Flag + stream... 阅读全文
posted @ 2014-08-25 16:32 D10.天地弦 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 什么是粘包: 第一次发送 12345, 第二次发送abcde, 底层socket可能会一次性进行发送12345abcde,或者对方可能一次性进行了接收,那接收的时候,你可能想分两次接收才对,第一次接受到12345, 第二次想接收abcde,但是事与愿违,一次就接收完了,这就是粘包的问题。需要自己处理, 怎么样处理粘包: 常见的方法是在包数据的前面加长度比如我先发送一个字节代... 阅读全文
posted @ 2014-08-25 14:27 D10.天地弦 阅读(929) 评论(1) 推荐(0) 编辑
摘要: DIOCP3支持两种方式接收数据, 第一种是原始的流数据, 最通用的一种方式,客户端发啥,这边就收到啥。需要自己处理粘包问题。 可以在TCilentContext或者TIocpTcpServer的OnRecvBuffer中处理, 如果Errcode = 0可以进行收到数据的处理 下面这两个都会触发 TIocpClientContext procedure OnRecvBuffer(... 阅读全文
posted @ 2014-08-25 14:13 D10.天地弦 阅读(965) 评论(0) 推荐(0) 编辑
摘要: plugMap实现了对象的存储,使用setObject,和getObject来对对象进行存储 内部其实是一个列表,而且他会在释放的时候会情况尝试释放所有的对象,所以如果你共享的对象提前进行了释放,会导致在关闭程序释放的时候出现操作无效的指针错误。 内部释放的时候进行了try..except所以在调试的时候会出现这个错误 阅读全文
posted @ 2014-08-25 13:41 D10.天地弦 阅读(528) 评论(0) 推荐(0) 编辑