简单动手,写一个windows平台的服务器承压测试软件. 类似于apache的ab.
#include<iostream>
#include<atomic>
#include<thread>
#include<condition_variable>
#include<mutex>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<regex>
#include<ws2tcpip.h>
#include<vector>
#include<windows.h>
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#define BUF_SIZE 65535
#define _WINSOCK_DEPRECATED_NO_WARNINGS
bool Start = false;
std::mutex mut;
std::condition_variable cv;
std::atomic<int> Count = 0; //for Count working Thread.
std::atomic<int> N_request = 1000;
std::atomic<int> N_data = 0;
std::atomic<int> N_Fished = 0;
const char* request = "GET /gdl/poems/ HTTP/1.1\r\n\r\n";
const int len_r = strlen(request);
const std::regex r("\\r\\nContent-Length:[ ]*([0-9]+)");
DWORD T0;
class RAII
{
public:
~RAII() {
std::lock_gu