社区
进程/线程/DLL
帖子详情
IO完成端口 如何用WSASend一次发送多个数据包
princesshan
2012-12-25 11:05:49
IO完成端口 如何用WSASend一次发送多个数据包
例如,希望发送10个 1k 的数据包,是需要调用10次WSASend吗?还是只需要调用一次就可以了?
最好给一些示例代码,谢谢。
...全文
178
4
打赏
收藏
IO完成端口 如何用WSASend一次发送多个数据包
IO完成端口 如何用WSASend一次发送多个数据包 例如,希望发送10个 1k 的数据包,是需要调用10次WSASend吗?还是只需要调用一次就可以了? 最好给一些示例代码,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xumaojun
2012-12-25
打赏
举报
回复
不一定是调用10次,因为你想发生的数据和实际发送的数据的数目不一定一致
princesshan
2012-12-25
打赏
举报
回复
楼上的,好像不行,收到不到数据。 我在msn上找了个例子,也不行。 我在网上找了一个例子 http://wenku.baidu.com/view/72f4b71055270722192ef7fc.html 是用io完成端口传输文件的。 如果我不需要传输文件,每次接受到客户端的请求命令,假如为“aa”,然后 就向客户端回传 10个大小为1k的数据包,应该怎么修改?
yaozhiyong110
2012-12-25
打赏
举报
回复
int WSASend ( SOCKET s, LPWSABUF lpBuffers DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent, DWORD dwFlags, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); 你可以吧10个包拼一个WSABUF一次发 也可以建一个WSABUF[10]数组 lpBuffers传数组首地址 dwBufferCount 传10 这样也只要调用一次WSASend 你还可以一次只发一个包 调用10次WSASend
princesshan
2012-12-25
打赏
举报
回复
谁能给个io完成端口的例子,收到客户端的链接后,发送数据时,有时候需要连着发送多个,因为数据比较大。
IO
CP中多次投递W
SAS
end
本文探讨了在
IO
CP中使用W
SAS
end
时是否会出现部分
发送
的问题。通过实验和对Windows网络编程源码的分析,得出结论:W
SAS
end
在数据
发送
时通常会完整地提交到TCP
发送
队列,不会出现部分
发送
。除非在非重叠(non-overlapped)模式下,且
发送
缓冲不足时,s
end
函数可能会部分
发送
。对于W
SAS
end
,即使缓冲区不足,也会等到所有数据
发送
完毕后才返回。这表明在
IO
CP中连续调用W
SAS
end
是安全的。
Socket向
完成
端口
多次
发送
消息浅见
本文探讨了在使用
完成
端口
时,如何处理Socket的
多个
WSARecv和W
SAS
end
消息。测试表明,多次
发送
WSARecv可能导致错误997,而在断开连接时可能会出现关闭socket的异常。同时,W
SAS
end
消息可能会堆积,尤其是服务线程繁忙时。尽管如此,WSARecv和W
SAS
end
可以并存,不会互相冲突。
W
SAS
end
()
本文介绍W
SAS
end
函数的使用方法及注意事项,包括参数说明、错误处理、重叠套接字
IO
等高级特性。通过示例代码展示如何进行异步数据
发送
。
Windows
io
完成
端口
本文深入介绍了Windows系统中的I/O
完成
端口
(I/O Complet
io
n Ports, I/OCP)机制,它允许异步I/O操作的高效管理,通过线程池处理I/O
完成
。I/OCP创建后与文件句柄关联,当I/O操作
完成
后,系统会将结果放入通知队列供应用获取。创建线程池并设置适当并发线程数,通过GetQueuedComplet
io
nStatus获取I/O通知,PostQueuedComplet
io
nStatus模拟I/O
完成
用于线程唤醒。重点讨论了如何使用W
SAS
ocket、AcceptEx、W
SAS
end
、WSARecv等函数在I/OCP中进行网络通信,并分析了AcceptEx的优势。最后,文章通过实例展示了如何在实际操作中使用I/O
完成
端口
进行网络通信的处理流程。
异步
IO
框架实现之
完成
端口
(Complet
io
n Port)
本文介绍基于Windows
完成
端口
实现的异步
IO
机制,包括如何创建
完成
端口
对象、扩展OVERLAPPED结构以及监测Socket
IO
事件。
完成
端口
与EPOLL的不同之处在于其属于
完成
通知型。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章