当前位置:  开发笔记 > 编程语言 > 正文

.NET中的异步TCP通信

如何解决《.NET中的异步TCP通信》经验,为你挑选了1个好方法。

这里的快速问题:使用与NetworkStream类(由TcpClient生成)的异步通信有什么明显的好处,即BeginRead/BeginWrite方法,而不是运行单独的线程并对其使用同步操作,即读/写?我的印象是(很可能是非常错误的)异步操作是非阻塞的并且在OS级别(在TCP堆栈中执行?)执行,并带有回调的线程池项.我认为它肯定必须与在同步方法上调用ThreadPool.QueueUserWorkItem不同,或者提供它时没有什么意义.现在,我相信这至少是文件I/O所发生的事情(操作系统级调用),但如果有人可以请澄清有关网络(TCP)通信的问题,这将是最有帮助的.基本上,我想知道这两种方法是否有任何特定的好处(除了能够在同步调用中使用BinaryReader/StreamReader类的明显优势).



1> AnthonyWJone..:

不同之处在于,如果使用Worker线程调用同步版本,则会阻塞阻塞调用中的一个线程.

虽然Begin方法不会占用线程,但会在适当的I/O信号上使用回调,然后回调将在池中的线​​程上运行.


低级别(BeingXX/EndXX)模式的.NET框架实现通常使用IO完成端口.这是Windows下可用的最具扩展性的IO方法.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有