关于DELPHI IOCP的问题 小弟以纠结10多天无赖唯有请教各位大虾(愿意帮忙的有一点点RMB谢礼)
这个IOCP控件使用的是
http://download.csdn.net/detail/foreverhero/2267433
这个大大的
目前小弟面临几个问题,用这个控件开发的目的是和网页上的FLASH的SOCKET交互
要实现的功能:
1:FLASH请求 获取当前在这个位置的用户列表//比如http://www.xxx.com/news/
那么当用户进入这个页面时候,就获取当前在这个页面的所有用户的用户名,然后通知当前已经在的用户,有新用户进来了
我的想法是当打开这个网页加载完FLASH以后 FLASH就连接这个DELPHI的服务器,连接成功以后 发送当前所在位置和用户名的包,比如定义为setloact|name|loact(位置如"http://www.xxx.com/news/
")然后DELPHI的服务端把这个SOCKET的指定添加进一个链表(这个链表类是我以前写的双向链表)
然后用一个FOR循环遍历出当前已经在这个位置的用户的SOCKET 通知他们有新用户到了发送"add|name(新来用户的名字)"
然后遍历出所有当前已经在这里的用户的名字发送给新来的这个SOCKET包为"addlist|name1|name2|name3|..."
那么这个DELPHI的服务端的处理应该怎么设计呢?小弟是小白,只是以前接触过DELPHI而已
当服务器接收到包后,我想应该不会直接在控件的dzIocp1Recv事件里面直接调用处理函数吧
我现在是什么方式多试过了 比如(在事件里直接调用处理函数,在事件里创建线程调用处理函数等,始终不完美)
只有创建线程调用处理函数要稍微好一点,但始终有这样那样的问题.
特别是通知其他在线用户有新用户来了的时候 FOR循环给他们发送消息的时候 用异步发生好像有问题
哎 我也不知道应该怎样描述了 ,不知道各位大大明白我的意思没有,我就想请教各位大大,我现在就是想用这个IOCP控件实现 获取用户列表以及通知他们有新的人进来了这种应该怎么处理才合理和高效!
自己开始弄的时候看起来觉得很简单的 但是做起来就发现这样那样的问题 ,我觉得问题主要应该是在IOCP的事件处理是多线程的吧,然后就是通知已经在线的用户新用户来的时候,是不是不能在FOR循环里面发送消息呢?
首先申明一下 咱并不想做拿来主义者,但确实对软年开发的很多东西都不懂,也不是专业做开发,现在开始自学 要搞懂IOCP以及一些底层的东西 估计最少也要一年半载以上了(咱只是一个写DIV+CSS的....)
如果谁有兴趣的可以去上面的连接下一个这个控件里面有他的DEMO 帮我在这个DEMO的TCPSERVER里面加上我上面描述的处理框架 小弟除了答谢论坛的分以外还额外答谢50RMB(如果嫌弃的别噴,咱只想说一句,钱虽然不多,但这是咱的一点心意,其中包含的感激之情不是用RMB能衡量的)
我的QQ:627464 有兴趣的可以加我 我可以详细描述一下问题!