完成端口怎么不定时发送数据给每一个客户端?代码写在那里?例子里面,都是accept后,发送一个.
我的情况如下:
设备A->服务器B->client C;1.client C connect 服务器B;
2.服务器B收到设备A的数据后,发送给每一个客户端C?代码怎么写呀?
我的情况如下:
设备A->服务器B->client C;1.client C connect 服务器B;
2.服务器B收到设备A的数据后,发送给每一个客户端C?代码怎么写呀?
解决方案 »
- MFC实现一个纯色渐变的算法
- 请问中关村的,几百块钱的二手IBM笔记本电脑能不能买?
- 【分享】VC使用CMarkup类生成、解析xml资料
- CString怎么处理带有“|”的字符串?
- FTP打开的文件,要到指定位置读写,怎么定位文件指针?
- 关于listctrl的问题
- 请问一个关于socket的问题,不是很难,请各位指教.
- 请问在那可以下载-->Windows程序设计(第五版)Programming Windows(Fifth Edition)
- 有关CList与CListCtrl的问题.(可惜我的最高分值就100,否则我会出到500,但是我会另外开贴送分)
- 请教表示画像属性的代码
- 大家帮忙!
- 请问如何编程下载需要提交用户名和密码的网页?
能够给个例子吗[email protected]
你们所说的平时没有数据的时候都是挂起的,那时因为例子上写的是回应服务器,当然是没有数据来就不响应了.应该自己稍微修改一下完成端口的构架,主要是把他里面的那个IOORDER去掉,然后对发送部分也做一下修改.这样你只需要用一个客户端的socketobj指针就可以给该客户端发送数据了.注意,每个客户端的socketobj只有一个,但是bufferobj可以有好多.
去掉了ioorder以后,接收到的数据可能会不按照原来发送的顺序,因为完成端口事件的返回不是一定按序的.
Iocp的例子只是一个回显服务器,加上IoOrder是为了将消息按照原来的顺序发送回去。
但是这样做有个问题,每次PostSend都要加上前面PostRecv时候的IoOrder标志。
每次只有收到一个消息了以后才能发送一个消息,如果你需要随时都能发送1条或者多条消息给客户端,那样要对IoOrder进行相应的修改.
http://www.wenyuan.com.cn/vs/Windows%CD%F8%C2%E7%B1%E0%B3%CC%B2%B9%B3%E4%B2%C4%C1%CF.zip建议你去看看<windows网络编程>这本书,上面的例子来自这本书的第二版.编译错误很可能是你的sdk版本没有更新过,
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/这里可以更新VC6.0的sdk,
或者简单一点就安装VS.net来编译.如果是链接错误,那是由于你没有把ws_32.lib加入到Link的选项里面.
有问题应该是没有把ws_32.lib加入到Link的选项里面.