Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
TCPPerformanceCheck.h
[詳解]
1
5
6#pragma once
7
8#define _WINSOCKAPI_ // Windows.h -> WinSock2.hの順にインクルードする際の呪文
9
10#include "PerformanceCheck.h"
11#include "Console.h"
12#include "QueryPerformance.h"
13#include "Thread.h"
14#include "SocketBuilder.h"
15#include "TcpConnector.h"
16
17#define SECTION_TCP_SERVER _T("TcpServer")
18#define SECTION_TCP_CLIENT _T("TcpClient")
19#define KEYWORD_IP_ADDRESS _T("IPAddress")
20#define KEYWORD_PORT _T("Port")
21#define KEYWORD_RETRY_COUNT _T("RetryCount")
22#define KEYWORD_RETRY_INTERVAL _T("RetryInterval")
23#define KEYWORD_KICK_OFF _T("KickOff")
24
25#define SECTION_TCP_PROXY _T("TcpProxy")
26#define KEYWORD_SERVER_ADDRESS _T("ServerAddress")
27#define KEYWORD_SERVER_PORT _T("ServerPort")
28#define KEYWORD_CLIENT_ADDRESS _T("ClientAddress")
29#define KEYWORD_CLIENT_PORT _T("ClientPort")
30
31#define _DUMP_DATA
32#define DUMP_COUNT 24
33#define DATA_SIZE 1460
34
35#define SLEEP_TIME_30 30000
36#define SLEEP_TIME_120 120000
37
38int MakeData (BYTE byData[]);
39void DumpData (int direction, BYTE byData[], int iDataLen); // 0:Down 1:Up
40
41void DriveTcpServer ();
42void DriveTcpClient ();
43void DriveTcpProxy ();
44
45BOOL DriveTcpServerConsoleHandler (DWORD dwType);
46BOOL DriveTcpProxyConsoleHandler (DWORD dwType);
47BOOL DriveTcpClientConsoleHandler (DWORD dwType);
48
49namespace PerfCheck
50{
54 {
55 public:
57 virtual ~TCPPerformanceCheck ();
58
59 virtual BOOL DoAction ();
60 };
61
65 {
66 public:
68 virtual ~ServerWorker ();
69 BOOL Start ();
70 void Stop ();
71
72 protected:
73 ServerWorker ();
74 virtual DWORD Invoke (LPVOID lpvParam);
75
76 private:
77 volatile bool _stop;
80 };
81
85 {
86 public:
87 TcpServer ();
88 virtual ~TcpServer ();
89
90 bool Init (LPCTSTR lpctszIP, USHORT wPort);
91 BOOL Start ();
92 DWORD Wait ();
93 void Stop ();
94
95 protected:
96 virtual DWORD Invoke (LPVOID lpvParam);
97
98 private:
99 volatile bool _stop;
102#pragma warning (push)
103#pragma warning (disable:4251)
105#pragma warning (pop)
106 };
107
111 {
112 public:
113 TcpClient ();
114 virtual ~TcpClient ();
115
116 bool Init ();
117 bool Start (LPCTSTR lpctszIP, USHORT wPort, int retryCount, int retryInterval, bool kickOff);
118 void Stop ();
119
120 protected:
121 virtual DWORD Invoke (LPVOID lpvParam);
122
123 private:
124 bool _stop;
128 };
129
133 {
134 public:
136 {
137 _connectorServer = nullptr;
138 _connectorClient = nullptr;
139 };
140 virtual DWORD Invoke (LPVOID lpvParam);
141 void SetTcpServer (alt::TcpConnector* connector) { _connectorServer = connector; };
142 void SetTcpClient (alt::TcpConnector* connector) { _connectorClient = connector; };
143
144 private:
147 };
148
152 {
153 public:
155 {
156 _connectorServer = nullptr;
157 _connectorClient = nullptr;
158 };
159 virtual DWORD Invoke (LPVOID lpvParam);
160 void SetTcpServer (alt::TcpConnector* connector) { _connectorServer = connector; };
161 void SetTcpClient (alt::TcpConnector* connector) { _connectorClient = connector; };
162
163 private:
166 };
167
171 {
172 public:
173 TcpProxy ();
174 virtual ~TcpProxy ();
175
176 bool Init (LPCTSTR lpctszClientIP, USHORT wClientPort, LPCTSTR lpctszServerIP, USHORT wServerPort);
177 bool Start ();
178 void Stop ();
179
180 private:
181 bool _stop;
190 };
191}
コンソールに関するWindowsAPIを集約したクラス
void Init()
ストラテジーの初期化を行います。
性能測定用
高分解能時間計測に関するWindowsAPIを集約したクラス
ソケットに関するWindowsAPIを集約したクラス
BOOL DriveTcpClientConsoleHandler(DWORD dwType)
void DumpData(int direction, BYTE byData[], int iDataLen)
void DriveTcpServer()
BOOL DriveTcpServerConsoleHandler(DWORD dwType)
BOOL DriveTcpProxyConsoleHandler(DWORD dwType)
void DriveTcpClient()
int MakeData(BYTE byData[])
void DriveTcpProxy()
TCP通信に関するWindowsAPIを集約したクラス
スレッドに関するWindowsAPIを集約したクラス
TCP性能測定用(ダウンストリーム)
alt::TcpConnector * _connectorClient
void SetTcpClient(alt::TcpConnector *connector)
alt::TcpConnector * _connectorServer
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
void SetTcpServer(alt::TcpConnector *connector)
TCP性能測定用(サーバースレッド)
alt::TcpConnector * _connector
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
virtual BOOL DoAction()
処理開始
TCP性能測定用(クライアント)
alt::TcpConnector * _connector
bool Start(LPCTSTR lpctszIP, USHORT wPort, int retryCount, int retryInterval, bool kickOff)
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
alt::SocketBuilder * _builder
TCP性能測定用(プロキシー)
alt::Thread * _threadDownstream
alt::SocketBuilder * _builderClient
UpstreamDriver * _driverUpstream
alt::TcpConnector * _connectorServer
alt::Thread * _threadUpstream
DownstreamDriver * _driverDownstream
alt::SocketBuilder * _builderServer
alt::TcpConnector * _connectorClient
TCP性能測定用(サーバー)
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
alt::SocketBuilder * _builder
alt::skeleton::Array< ServerWorker > _workerHolder
TCP性能測定用(アップストリーム)
alt::TcpConnector * _connectorServer
void SetTcpServer(alt::TcpConnector *connector)
alt::TcpConnector * _connectorClient
void SetTcpClient(alt::TcpConnector *connector)
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
コンソールに関するクラス
Definition: Console.h:88
ソケットに関するWindowsAPIを集約したクラス
Definition: SocketBuilder.h:18
TCP通信に関するWindowsAPIを集約したクラス
Definition: TcpConnector.h:17
スレッドに関するWindowsAPIを集約したクラス
Definition: Thread.h:43
サイズ可変の配列を具現したクラス
Definition: Array.hpp:20
Threadクラスのスレッド実行関数を設定します。