- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 C 实现 token 桶算法...但我陷入了如何创建固定大小的突发(如 10MB、20MB、100MB 等)的困境。
我的代码发送 2MB 数据
for(i=0;i<2047;i++)
buffer[i] = 'a' ; // some char
if(sendto(sock_fd, buffer , 2048, 0, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
perror("\nmessage sending failed");
else
printf("message sent successfully");
我想,我只需要用我们想要的数量的字符填充缓冲区......这是正确的方法吗?我认为这会消耗 buffer
数组的大量内存?有更好的标准方法来做到这一点吗?
最佳答案
如果您正在谈论尝试实现特定的数据速率,那么这是一个更加复杂的问题。如果您只想发送更多数据,请将上面的代码放入循环中,并执行多次。 (例如:要发送 10MB,请循环 5 次)。要将其分散到几秒钟内,您可以在循环中添加 sleep(1) 或某种其他类型的延迟(可能是 nanosleep)。
计算数据速率的一个近似方法是使用较小的缓冲区大小(例如几 K),然后计算发送它所需的延迟和循环数。例如,使用 32K 缓冲区,要在 2 秒内发送 200MB,您将循环 200M/32K = 6400 次。延迟在循环最多为 2s/6400 = 312500 纳秒。当然,由于执行代码所需的时间、通过套接字发送数据包所需的时间、任何网络延迟和数据包丢失等,这不会接近精确。但对于您来说,它可能已经足够接近了目的。
关于c 程序 - 创建固定大小的突发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20899328/
有一些算法可以检测数组中的最大子数组(连续的和非连续的)。不过,它们中的大多数都基于同时具有负数和正数。仅使用正数如何完成? 我有一个股票在相应时间范围内的值数组(比方说,该数组包含所有连续月份的值)
我不知道为什么,但我很确定以下内容确实产生了一段时间的情节。你能告诉我这里有什么问题吗? library(ggplot2) qplot(c(0, 2), stat="function", fun=ex
我正在尝试使用 StackExchange Redis 库追踪间歇性的“突发”超时。以下是关于我们的设置的一些信息:我们的 API 是用 C# 编写的,在 Windows 2008 和 IIS 上运行
我有一个 Java 应用程序,直到最近一直运行良好。它开始引发异常:javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败:sun.security.provi
在一个运行了很长一段时间而没有任何变化的应用程序中我得到了异常 failed to lazily initialize a collection of role: ... , no session o
我是一名优秀的程序员,十分优秀!