【发布时间】:2012-09-09 23:34:11
【问题描述】:
阅读 MSDN 页面,很明显,如果套接字传输层中没有内部缓冲区,Send 将阻塞。这实际上是一件好事,因为我宁愿没有 NoBufferSpaceAvailable 错误。我的理解是传输缓冲区空间很大,但如果 Send 限制了一些东西以防止这些错误,我很高兴。
但是,尚不清楚还有什么会导致 Send 被阻止。我的猜测是它不会阻塞等待发送的确认,并且发送只会将数据排队到传输缓冲区并返回。
如果一个 Send 确实阻塞,直到一个特定的套接字实际上完全阻塞,直到传输完成,这将是一件非常糟糕的事情。如果是这种情况,那么 1000 个中的一个慢速连接可能会减慢整个发送过程。在那种情况下,SendAsync 确实是强制性的。
谁有这方面的更多细节?
【问题讨论】:
-
如果你等待异步套接字返回一些东西(即:结果。),它也会阻塞。
标签: .net sockets asyncsocket