WSASend 网络编程

bljswpu 2014-10-15 11:49:10
现在刚接触windows下面的网络编程 当我调用WSASend向客户端发送A消息的 我在服务器的GetQueuedCompletionStatus中也会检测到A消息 我现在想知道哈 调用WSASend的时候 是不是会向服务器本地和客户端发送消息 (我现在的客户端和服务器都在同意物理机下) 在MSDN查了一下 也没得到这方面的帮助 求解
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
版主大哥 2014-10-16
  • 打赏
  • 举报
回复
调用WSASend的时候 是不是会向服务器本地和客户端发送消息 ---感觉楼主不该问这样的问题(怎么发给服务器本地呢?) 服务器进程,AB线程,A发送消息,B得到发送完成通知 客户端进程,收到消息
勤奋的小游侠 2014-10-16
  • 打赏
  • 举报
回复
引用 5 楼 bljswpu 的回复:
引用 3 楼 lovesmiles 的回复:
你在服务端是不是用了完成端口?信息发送完会有一个通知告诉3服务器的
用的是完成端口 信息发送完毕也是通过GetQueuedCompletionStatus通知的?
完成端口是异步的io。你把要发的数据丢给它就行了。它完成之后会告诉工作线程的。 异步io和你理解的一般的同步send不一样。 调用WSASend的时候 是不是会向服务器本地和客户端发送消息 答案是不会的。完全不会的。 数据还是一样的只发给客户端,只是发送完成后,会有个消息通知完成端口,等你通过GetQueuedCompletionStatus获得这个消息就说明已经发送完了,可以做下一步的操作了。 完成端口的操作过程和原理不是一下子能学会的。你还是好好看书吧。
勤奋的小游侠 2014-10-16
  • 打赏
  • 举报
回复
你在服务端是不是用了完成端口?信息发送完会有一个通知告诉3服务器的
铖邑 2014-10-16
  • 打赏
  • 举报
回复
GetQueuedCompletionStatus是获取内核中的状态
luotuo44 2014-10-16
  • 打赏
  • 举报
回复
只会向客户端发送消息。GetQueuedCompletionStatus能检测到这个消息是否已经发送出去了
bljswpu 2014-10-16
  • 打赏
  • 举报
回复
引用 5 楼 bljswpu 的回复:
引用 3 楼 lovesmiles 的回复:
你在服务端是不是用了完成端口?信息发送完会有一个通知告诉3服务器的
用的是完成端口 信息发送完毕也是通过GetQueuedCompletionStatus通知的?
而且我在GetQueuedCompletionStatus的重叠IO中 受到的消息和发送客户端的是一样的
bljswpu 2014-10-16
  • 打赏
  • 举报
回复
引用 3 楼 lovesmiles 的回复:
你在服务端是不是用了完成端口?信息发送完会有一个通知告诉3服务器的
用的是完成端口 信息发送完毕也是通过GetQueuedCompletionStatus通知的?

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧