c# - 使用 C# 异步套接字读取面向行的数据

标签 c# asynchronous tcp

我是 C# 新手,但从事 TCP 和套接字编程多年。 我想创建一个程序来执行异步 I/O(仅接收)来自 多个服务器。数据是文本,由换行符分隔(非常简单)。

我的问题是如果我使用 StreamReader 是否可以假设 在我的异步读取回调函数中,我是否可以假设

  1. 至少能得到一行完整的数据,并且
  2. 它不会以某种方式阻塞。

按照我的理解,我想在我的中做一个 StreamReader ReadLine 异步读取回调。但是 BeginRead 中的内容知道我真的 想做面向行的数据?我显然不知道阅读的长度 那时。

我希望这是有道理的,提前致谢!

米奇

最佳答案

根据您的帖子,我认为您需要创建自己的类,并将SYNCHRONOUS 套接字包装到其中。您将以阻塞方式Read() 套接字、缓冲数据、拆分行并在整行可用时向类使用者触发事件。

关于c# - 使用 C# 异步套接字读取面向行的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415280/

相关文章:

c# - 如何使端口安全

javascript - Promise.all 错误处理——让一个 Promise 的结果在另一个 Promise 的 catch 中可访问?

基于 C++ STL 的二进制序列化数据发送,使用套接字进行网络传输,无需使用库

c# - 如何通过 Unity 容器配置 HttpClient?

c# - 设置连接设置的最佳方法

c# - .net core [授权] 将 ClaimsIdentity 与 AAD 组结合使用

c# - HttpException (0x80004005) : Session data is too long

c# - 不等待 HttpClient 使用时会发生什么

javascript - Node 在执行代码之前等待所有异步调用

c - Tcp 服务器关闭卡在 TIME_WAIT,无法再次在同一端口上打开服务器