上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页
摘要: 规划下将要出炉的IOCP。1.将接收IO数据改成内存池。2.扩展lpCompletionKey: DWORD参数.扩展套接字对象。3.借鉴java netty思路,使用decode –> handler的思路来处理客户端数据。//内存池unit uMemPool;interfaceuses JwaWinsock2, Windows, SyncObjs;const MAX_BUFFER_SIZE = 1024;type LPPER_IO_OPERATION_DATA = ^PER_IO_OPERATION_DATA; PER_IO_OPERATION_DATA = packed reco. 阅读全文
posted @ 2013-04-22 14:27 D10.天地弦 阅读(3223) 评论(12) 推荐(2)
摘要: 现在IOCP可以接收到数据了。>>>>>>>>>其实IOCP的队列是先进先出的,经过测试,看来是我记错了!!!!>>>>2013年4月20日 16:22:46>>>>>引用TCP数据粘包的产生原因在于TCP是一种流协议。在以太网中一个TCP的数据包长度是1500位。其中20位的IP包头,20位的TCP包头,其余的1460都是我们可以发送的数据>>>>>><http://fxh7622.blog.51cto.com/63841/15578>我 阅读全文
posted @ 2013-04-20 10:38 D10.天地弦 阅读(2144) 评论(0) 推荐(1)
摘要: 今天把前几天研究的代码都整理了下。我觉得刚开始学习IOCP,看简单的例子更容易入门。先截取运行图下面是这个是IOCP简单测试点击运行服务,开启IOCP工作线程和监听过程。创建客户端连接是使用的idtcpClient.发送字符,使用idtcpClient向iocp服务发送一个abc字符///中间用了个小工具显示日志提供源码: 360云盘 阅读全文
posted @ 2013-04-20 10:17 D10.天地弦 阅读(2097) 评论(5) 推荐(1)
摘要: 接第一次代码继续分析uses JwaWinsock2, Windows, SysUtils;const DATA_BUFSIZE = 1024; IO_TYPE_Accept = 1; IO_TYPE_Recv = 2;type //(1):单IO数据结构 LPVOID = Pointer; LPPER_IO_OPERATION_DATA = ^PER_IO_OPERATION_DATA ; PER_IO_OPERATION_DATA = packed record Overlapped: OVERLAPPED; IO_TYPE: Cardinal; Data... 阅读全文
posted @ 2013-04-18 09:30 D10.天地弦 阅读(2485) 评论(0) 推荐(0)
摘要: 经过研究代码,觉得有几个函数必须要清楚原理。才能理解代码,清楚流程。异步模式:类似form.show();阻塞模式:类似form.showModal();WSAAccept;当客户端有连接请求的时候,WSAAccept函数会新创建一个套接字cSocket。其他的参数可以查看MSDN,和google。需要说明的一点是这个函数不是异步的,是阻塞模式。WSARecv;收取socket的数据这个函数是异步模式,执行后马上返回。数据接收到后,GetQueuedCompletionStatus,会返回GetQueuedCompletionStatus:实现从指定的IOCP请求队列中获取请求。当队列为空时, 阅读全文
posted @ 2013-04-17 13:41 D10.天地弦 阅读(3706) 评论(0) 推荐(0)
摘要: 之前一直接从事企业管理的软件,接触网络比较少。网络方面的知识也很惨。最近想弄下iocp。网上找了很多资料,大部分是关于c++的。delphi的比较少。看了下,不适合刚接触网络的菜鸟学习!看过fxh的blog,觉得写的容易理解。http://fxh7622.blog.51cto.com/63841/7667基本上按照他的blog代码进行的编写。编译理解iocp的原理。首先我来个通俗的理解步骤。1.服务器创建一个iocp端口服务。2.服务器创建N个工作线程,不停的轮流处理这个端口上面的连接和请求。3.开启iocp的端口服务<绑定监听端口,进行监听>。如果接收到请求,通知iocp工作线程 阅读全文
posted @ 2013-04-16 14:51 D10.天地弦 阅读(5461) 评论(1) 推荐(1)
摘要: 日志的输出有助于程序的调试和问题的查找。在Java里面有log4J, 虽然Delphi里面有也有log4D,和showMessage,始终觉得不是蛮方便。这几天在写socket程序,顺手就写了一个日志记录和查看的工具Form1为测试程序,日志显示器为查看程序分成两部分1,日志查看(logViewer.exe),是一个socket的服务,用来接收日志,和显示日志。2,日志记录(logClient.dll),提供日志记录功能,负责发送日志信息。pas文件说明 logClientWrapper.pas包装了logClient.dll的功能。 uILogService.pas, 提供了logClien 阅读全文
posted @ 2013-03-12 10:32 D10.天地弦 阅读(2504) 评论(0) 推荐(0)
摘要: 新建一个工程,放一个cxComboBox,添加了一些下拉数据,发现输入时有乱码的现象。同样在Delphi7 下创建的工程,没有问题。后来把Delphi2007的工程在Delphi7下面编译,有同样的乱码情况和2007一致。经过对比发现是res的问题。后来把Delphi2007的工程文件的.res删除后,再次打开工程提示要重建.res文件,编译后发现cxComboBox正常了。------------------------问题是解决了,但是不清楚是什么原因引起的。没有去看cxCombobox的源码。 阅读全文
posted @ 2012-11-06 15:15 D10.天地弦 阅读(723) 评论(0) 推荐(0)
摘要: 1EXECsp_configure'showadvancedoptions',12345GO6789RECONFIGUREWITHOVERRIDE10111213GO14151617--以下写入作业18192021EXECsp_configure'xp_cmdshell',12223GO2425RECONFIGURE2627GO28293031declare@sqlvarchar(4000)3233declare@backupfilevarchar(2000)3435declare@retaindaysint3637declare@nowdatetime3839 阅读全文
posted @ 2012-10-16 15:52 D10.天地弦 阅读(397) 评论(0) 推荐(0)
摘要: if object_id('tempdb..#tempTable') is not nullBegin drop table #tempTableEnd 阅读全文
posted @ 2012-03-02 10:12 D10.天地弦 阅读(316) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页