【发布时间】:2011-08-11 06:47:17
【问题描述】:
我相信知道在非阻塞模式下调用 send 或 WSASend 只是在内部缓冲区中添加数据,但是如何知道数据何时真正发送?我的目标是显示进度条。
【问题讨论】:
-
在我的回答(已删除)中,我没有正确解释您想要的内容。这可能也不是,所以这只是一个评论。使用非阻塞套接字,如果发送缓冲区已满,我相信您将从发送调用中获得 WSAEWOUDBLOCK。如果发送返回值小于给定的总数,则需要用剩余的数据再次调用发送。因此,例如,如果您的发送缓冲区设置为 128K,那么您可以测量您正在进行的进度并从中生成进度条信息。
-
我试过了,但是更改发送缓冲区大小不能正常工作,我点击了这个链接:stackoverflow.com/questions/3145871/… 并且它有效!谢谢!
-
“发送”到底是什么意思?如果你有一块有点智能的卡在做自己的缓冲,你会计算操作系统将数据交给网卡的那一刻,还是数据到达网络的那一刻?使用 VMware 之类的东西变得更加棘手
-
我希望“发送”靠近其他应用程序的“接收”。但是这个问题在这个主题的帮助下得到了解决:stackoverflow.com/questions/3145871/…
标签: c++ networking winsock