【发布时间】:2011-05-19 12:26:15
【问题描述】:
我正在使用 TcpClient 与以“\n”分隔的字符串形式发送信息的服务器进行通信。数据流非常高,一旦设置了通道,流将始终具有要读取的信息。消息的大小可以变化。
我现在的问题是,最好使用 ReadLine() 方法从流中读取消息,因为它们已经“\n”分隔,还是建议读取一些固定大小的 byteArray 并获取使用 Split("\n") 之类的消息字符串? (是的,我确实理解字节数组可能只获取消息的一部分的情况,我们也必须为此实现逻辑。)
这里需要考虑的点是:
性能。
数据丢失。如果客户端的读取速度不如数据传入的速度快,是否会丢失一些数据?
- 多线程设置。如果此设置必须在多线程环境中实现,其中每个线程将有一个单独的通信通道,但会在客户端上共享相同的资源。
【问题讨论】:
标签: c# .net multithreading stream