我正在使用TcpClient与以“\ n”分隔字符串形式发送信息的服务器进行通信。数据流量非常高,一旦通道设置完成,流将始终有信息读取。消息可以是可变大小的。。 ReadLine()与Read ByteArray读取哪个更好?
我现在的问题是,使用ReadLine()方法从流中读取消息是否更好,因为它们已经被“\ n”分隔,或者建议读取一些固定大小的byteArray并选择他们使用拆分(“\ n”)或类似的消息字符串? (是的,我知道有些情况下字节数组只能得到部分消息,而我们也必须为此实现逻辑。)
这里需要考虑的一点是:
表现。
数据丢失。如果客户的数据读取速度不够快,会不会有一些数据丢失?
- 多线程设置。如果这个设置必须在多线程环境中实现,每个线程都有一个单独的通信通道,但是会在客户端共享相同的资源。
感谢您的帮助。是的,性能是一个主要问题,但是您认为,读入byteArray,转换为字符串,检查部分消息并拆分消息不会造成额外开销,并且性能仍然会更好? – 2010-12-03 02:40:53
使用共享资源时,问题基本上是客户机上的内存空间。 – 2010-12-03 02:43:00
@Danish,有点字符串操作几乎肯定比多个IO调用更快。 – JaredPar 2010-12-03 02:46:18