admin 管理员组

文章数量: 888141

第二篇文章连接

文章目录

  • 三种数据通信传输模式
    • 一、单工通信
    • 二、半双工通信
    • 三、全双工通信
  • 相关基础知识
    • 1、__stdcall
    • 2、GetIfTable()函数
    • 3、MIB_IFTABLE结构体
      • 细说MIB_IFROW结构体成员
    • 4、获取网络带宽
    • 5、获取发送比特数和接收比特数,自系统启动
    • 6、计算每秒发送比特数和每秒接收比特数
    • 7、SetupDiGetClassDevs()函数
      • 函数定义
      • 参数说明
      • 返回值
      • 说明
      • 举例

三种数据通信传输模式

一、单工通信

数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送数据信息,不能实现双向通信。比较安全,例如:广播、电视。

二、半双工通信

传输允许数据在两个方向上传输;在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送消息,可以实现双向通信。例如:对讲机。

三、全双工通信

数据通信允许数据同时在两个方向上传输,全双I通信是两个单工通信方式的组合。它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送消息。例如:电话通信。

相关基础知识

1、__stdcall

详解可点击这里了解

2、GetIfTable()函数

函数

  DWORD GetIfTable(
         PMIB_IFTABLE pIfTable,
         PULONG pdwSize,
         BOOL bOrder
  );

功能

  获取MIB-II接口列表

参数

  PMIB_IFTABLE pIfTable:接收缓冲区,接收GetIfTable返回的MIB-II接口表

  PULONG pdwSize:pIfTable缓冲区字节数,若缓冲区过小则返回所需大小

  BOOL bOrder:指定pIfTable中返回的接口列表条目是否根据接口索引排序

3、MIB_IFTABLE结构体

MIB_IFTABLE结构体

typedef struct _MIB_IFTABLE {
   
  DWORD     dwNumEntries;
  MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;

typedef struct _MIB_IFROW {
   
  WCHAR wszName[MAX_INTERFACE_NAME_LEN];
  DWORD dwIndex;
  DWORD dwType;
  DWORD dwMtu;
  DWORD dwSpeed;
  DWORD dwPhysAddrLen;
  BYTE  bPhysAddr[MAXLEN_PHYSADDR];
  DWORD dwAdminStatus;
  DWORD dwOperStatus;
  DWORD dwLastChange;
  DWORD dwInOctets;
  DWORD dwInUcastPkts;
  DWORD dwInNUcastPkts;
  DWORD dwInDiscards;
  DWORD dwInErrors;
  DWORD dwInUnknownProtos;
  DWORD dwOutOctets;
  DWORD dwOutUcastPkts;
  DWORD dwOutNUcastPkts;
  DWORD dwOutDiscards;
  DWORD dwOutErrors;
  DWORD dwOutQLen;
  DWORD dwDescrLen;
  BYTE  bDescr[MAXLEN_IFDESCR];
} MIB_IFROW, *PMIB_IFROW;


返回值

  成功返回NO_ERROR,否则返回值即错误码

头文件和引用库

  #include <IPHlpApi.h>   
  #pragma comme

本文标签: 网速 网络通信 流量 Windows