我有很多这样的数据1:0x00a4c7d9fb3849...
2:0x79821309bd789c7689c9...
3:0x0178dce67fe898...
它们超过每秒100个,速度是最重要的(网络总是繁忙的)。
我应该使用什么来传输数据(tcp/ip、管道、via等)?
我应该如何序列化它(BinaryFormatter、Xml、用户定义或任何更好的建议)?
发布于 2009-10-21 22:57:31
如果您要发送大量数据,并且这些数据不是关键数据,那么UDP是最佳选择。但是,这可能会丢失数据包(您可能会在网络上丢失其中一个数据集)。如果您的数据正在执行诸如更新实时图表之类的操作,这通常是很好的,因为缺少值实际上并不重要。
但是,如果丢失数据很重要,那么TCP/IP将是通过网络发送数据的最佳选择。考虑到数据的高速率,你最好制作自己的用户定义的二进制格式,并且只发送/接收原始字节。使用Xml将会非常非常繁琐(这意味着更多的开销)。即使是BinaryFormatter也会增加一些开销,因为序列化往往会添加比绝对必要的更多一点的开销。
发布于 2009-10-21 23:05:56
每秒100可能并不像你想的那么糟糕。
如果每个字节都是100字节(100位数字就可以了,没问题),那么100x100就是每秒10000字节,即10Kbps。
我会使用我最熟悉的任何东西,如果第一个解决方案不起作用,我会担心速度问题。你构建第一个解决方案的想法将/将使第二个解决方案更容易构建,你将更快或同时获得最终产品,除非你不那么沮丧。
发布于 2009-10-21 22:58:44
每秒100个这样的字符串看起来不是太大的问题(否则字符串必须很长)。
二进制代码总是比它的字符串表示形式更简洁。你甚至可以先打包它(使用zip或其他任何东西)
如果您想要完全控制发送,TCP/IP将是一个很好的选择。
https://stackoverflow.com/questions/1601379
复制相似问题