1. 简介
服务端负责从接收客户端的数据,并在数据接收完成之后计算平均速率。
// ServerTestApplication.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
/*
* 此程序主要用来充当服务端程序,接收来自客户端的数据包,并计算其数据发送速率
*/
#include "pch.h"
#pragma comment(lib, "ws2_32.lib")
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <WinSock2.h>
/**
* \brief 这个函数其实是把DWORD类型的数据转换为big-endian序(即大端存储,高位的放在内存低地址区,低位的放在内存高
* 地址区)
* \param pBuffer
* \param dwData
* 注意此函数有可能抛出空指针异常
*/
void WriteData(BYTE* pBuffer, DWORD dwData)
{
if (pBuffer)
{
WORD hWord = HIWORD(dwData);
WORD lWord = LOWORD(dwData);
BYTE hhByte = HIBYTE(hWord);
BYTE lhByte = LOBYTE(hWord);
BYTE hlByte = HIBYTE(lWord);
BYTE llByte = LOBYTE(lWord);
pBuffer[0] = hhByte;
pBuffer[1] = lhByte;
pBuffer[2] = hlByte;
pBuffer[3] = llByte;
}
}
/**
* \brief 此函数与上面的WriteData函数功能上是互逆的,将大端存储的四个字节的数据转换为一个DWORD
* \param pBuffer
* \return
*/
DWORD ReadData(BYTE* pBuffer)
{
DWORD dwValue = 0;