在 C 中实现 tcp ping 时可配置的速率和模式

发布于 2024-10-02 17:36:34 字数 147 浏览 12 评论 0原文

我正在尝试实现 TCP ping 功能。我希望能够配置发送消息的速率和模式。例如,在 5 秒内发送 5000 条消息,首先突发 2000 条,然后以 3 条消息/毫秒的速度发送 1000 毫秒。 知道如何实现吗?提前致谢。 ps,我正在使用c套接字编程,写入和读取发送和接收消息。

i am trying to implement a tcp ping function. And I hope to make the rate and pattern of sending messages configurable. For example, send 5000 msg in 5 seconds, burst 2000 at first then 3 msg/ms for 1000ms.
Any idea how to make it happen? Thanks in advance.
ps, I am using c socket programming, write and read to send and receive msg.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝梦月影 2024-10-09 17:36:34

我可能遗漏了一些东西,但您所要做的并不只是有一个循环,发送 2000 条消息,然后将线程置于 Sleep() 状态 1 毫秒,每次发送 3 个数据包,直到发送完其余 3000 个数据包为止。

您应该知道的一件事是,测量代码执行所需的时间很困难。由于您使用的是 TCP,它使用缓冲区,因此如果没有足够的缓冲区空间,则发送将阻塞,直到它可以根据数据量、大小和网络状态发送下一条消息。

I may be missing something but isn't all you have to do is have a loop where you send 2000 messages and then put the thread on Sleep() for 1ms and send 3 packets each time until you have sent the rest 3000 packets.

One thing you should know is that measuring how long time it takes for code to execute is hard. Since you are using TCP, which uses buffers, send will block if there is not enough buffer space until it can send the next message depending on amount of data, size and network status.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文