- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发具有几个以太网端口的测试设备。作为测试的一部分,我想检查连接测试设备时以太网端口的当前速度(10/100/1000)。
我怎样才能得到这些信息?我可以使用 C 库或 CMD 命令来提供此信息吗?
最佳答案
C# 的启动和运行速度可能比使用 c/c++ 访问 API 更快。
尝试使用 System.Net.NetworkInformation 类。特别是System.Net.NetworkInformation.IPv4InterfaceStatistics
应该有一些与您要查找的内容相符的信息。
具体来说,您可以检查 bytesReceived
属性,等待给定的时间间隔,然后再次检查 bytesReceived
属性,以了解您的连接每秒有多少字节正在处理。不过,为了获得一个好的数字,您应该尝试从给定的来源下载大量信息,然后进行检查;这样,您在进行测试时应该“最大化”连接,这应该会提供更有用的数字。
您需要一台运行 Linux 的机器才能使代码运行您需要在 Linux 中使用 SIOCETHTOOL ioctl()
调用。
#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <linux/sockios.h>
#include <linux/if.h>
#include <linux/ethtool.h>
#include <string.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
int sock;
struct ifreq ifr;
struct ethtool_cmd edata;
int rc;
sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
if (sock < 0) {
perror("socket");
exit(1);
}
strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));
ifr.ifr_data = &edata;
edata.cmd = ETHTOOL_GSET;
rc = ioctl(sock, SIOCETHTOOL, &ifr);
if (rc < 0) {
perror("ioctl");
exit(1);
}
switch (ethtool_cmd_speed(&edata)) {
case SPEED_10: printf("10Mbps\n"); break;
case SPEED_100: printf("100Mbps\n"); break;
case SPEED_1000: printf("1Gbps\n"); break;
default: printf("Speed returned is %d\n", edata.speed);
}
return (0);
}
我不确定Windows。也许你可以引用这里:Microsoft Developer Network
关于c - 如何从 LabWindows\CVI C 代码或 CMD 命令获取当前运行的以太网速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34460525/
我的陀螺仪正在发送我需要实时过滤的数据。数据很短,有 4 个元素 vector ,每秒发送 25 次。我该如何过滤这个?我在 LabWindow 文档中找到的所有函数都需要整个数据数组,然后生成相同长
我有一个 Labwindows 服务器,用于监听来自远程计算机上的 python 客户端的数据。在 Labwindows 服务器上,每当触发 TCP_DATAREADY 事件时,我都会读取缓冲区以从客
Labwindows 文档对 ServerTCPRead 方法有以下说明: int ServerTCPRead (unsigned int conversationHandle, void *data
我正在尝试将一个简单的文本字符串从网站读取到我的 LabWindows CVI 程序中。我到处寻找,但找不到使用简单 HTTP GET 请求的示例。 有谁知道这是否可以在 LabWindows 中完成
这个问题已经有答案了: Floating point comparison revisited (4 个回答) 已关闭 9 年前。 我正在计时器的 CALLBACK 函数内运行以下代码块。 if (s
我正在尝试将 openCV 与 LabWindows 2012SP1 一起使用。我有一个简单的项目,试图在 Debug模式下运行一个简单的“Hello World”程序。 我尝试运行的代码是 #inc
我有两个(或更多线程)并行工作。它们的目的是测量硬件设备,并且它们依赖于外部硬件刺激。在执行过程中的某个时刻,它们会触发硬件设备并等待刺激。但我只有一个刺激装置。 因此线程必须等待,直到每个线程都准备
昨天,我发现当我用C运行一些简单的代码时,CVI可以检测到缓冲区溢出,这让我很困惑。 void main(void) { int a[10]; int buf[10]; int test[10]
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在尝试制作一个与 SPBT2632C2A 蓝牙芯片对话的 LabWindows/CVI 程序。我正在使用 st eval spbt3atv3 加密狗。我试图按下一个按钮并向芯片发送命令,但芯片不回
使用 Windows 所以我正在从一个二进制文件中读取一个无符号整型数据值的列表。该文件包含许多按顺序列出的数据集。这是从指向其开头的 char* 读取单个数据集的函数: function read_
我正在开发具有几个以太网端口的测试设备。作为测试的一部分,我想检查连接测试设备时以太网端口的当前速度(10/100/1000)。 我怎样才能得到这些信息?我可以使用 C 库或 CMD 命令来提供此信息
我目前正在开发一个 cvi 应用程序,我需要在其中检索当前构建目录的每个 .wav 文件。为了在 C 中这样做,我在以下函数中使用了 Windows 内置函数 FindFirstFIle 和 Find
好的,我们有一个使用 LabWindows 为 Tcl 8.4 用 C 语言编写的扩展。升级到 Tcl 8.6 后,调用任何由 dll 生成的过程会导致希望崩溃而不会生成有用的错误代码。这既发生在脚本
我是一名优秀的程序员,十分优秀!