繁体   English   中英

服务器以 100 Hz 的采样率发送数据,客户端接收和处理时间约为 0.1s 使用 Python

[英]Server sending data at a sampling rate 100 Hz and the client receiving and processing time is around 0.1s using Python

我有一台服务器以 100Hz 的采样率连续发送数据块(样本)。 我的客户收到它并对样本进行一些计算以直观地显示实时跟踪,然后接收下一个样本,依此类推。 它接收和计算直到接收到下一个样本所花费的时间为0.1s。

这意味着如果我没记错的话,我在样本之间丢失了。 如何更改代码以便我接收“所有样本”并执行计算以启用实时跟踪?

先感谢您!

从评论部分:

服务器是我从中接收样本的软件。 并且软件手册上说样本的采样率为100Hz。 我的客户端代码接收它并检查样本中的数据是否高于阈值,并在屏幕上显示错误。 为了能够检查软件正在流式传输的每个样本,我的接收和计算必须更快。 你能解释一下我如何使用缓冲区来改善我的情况吗? 如果我的问题很愚蠢,我很抱歉。 但这是我第一次尝试 TCP 编程以及 Python

对于 100 Hz 的采样率,网络延迟必须低于 10 毫秒。

第一个测试:确定网络延迟......只接收数据并将时间(包括毫秒)记录到文件中。 如果数据包之间的间隔超过 10 毫秒,则网络可能不够快。 如果间隙远低于 10ms,则数据处理速度太慢。

服务器端缓冲(高延迟):

如果您可以更改服务器,请考虑一次发送多个数据包,但频率较低。 客户端将有更多时间来处理数据,而不是等待 I/O。

客户端缓冲(低延迟):

如果服务器发送数据包的速度比您处理它们的速度快,请考虑为客户端使用 FIFO 缓冲区。 传入的数据被附加到缓冲区,而处理代码从队列中获取其数据包,理想情况下是同时进行。

最后,一些温暖的警告:你[说你]是编程语言和网络编程的新手——对于实时数据处理项目来说可能还为时过早,我建议从一个更简单的项目开始进行培训......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM