35 threadServer.
Create (funcServer);
36 threadClient.
Create (funcClient);
46 _tprintf (_T (
"DriveUdpController1ConsoleHandler(%d) IN.\n"), dwType);
65 _tprintf (_T (
"DriveUdpController1ConsoleHandler(%d) OUT.\n"), dwType);
71 _tprintf (_T (
"DriveUdpController1() IN.\n"));
80 _tprintf (_T (
"IPAddressの指定が見つかりません。\n"));
87 _tprintf (_T (
"Portの指定が見つかりません。\n"));
92 bool kickOff = kickOffValue == 1 ? true :
false;
100 _tprintf (_T (
"対向IPAddressの指定が見つかりません。\n"));
105 if (wPortCounter == 0)
107 _tprintf (_T (
"対向Portの指定が見つかりません。\n"));
111 auto object = std::make_unique<UdpController> ();
117 object->Start (ipAddress.
Ctr (), wPort, ipAddressCounter.
Ctr (), wPortCounter, kickOff);
119 _tprintf (_T (
"DriveUdpController1() OUT.\n"));
124 _tprintf (_T (
"DriveUdpController2ConsoleHandler(%d) IN.\n"), dwType);
143 _tprintf (_T (
"DriveUdpController2ConsoleHandler(%d) OUT.\n"), dwType);
149 _tprintf (_T (
"DriveUdpController2() IN.\n"));
158 _tprintf (_T (
"IPAddressの指定が見つかりません。\n"));
165 _tprintf (_T (
"Portの指定が見つかりません。\n"));
170 bool kickOff = kickOffValue == 1 ? true :
false;
178 _tprintf (_T (
"対向IPAddressの指定が見つかりません。\n"));
183 if (wPortCounter == 0)
185 _tprintf (_T (
"対向Portの指定が見つかりません。\n"));
189 auto object = std::make_unique<UdpController> ();
195 object->Start (ipAddress.
Ctr (), wPort, ipAddressCounter.
Ctr (), wPortCounter, kickOff);
197 _tprintf (_T (
"DriveUdpController2() OUT.\n"));
202 _tprintf (_T (
"UdpController::UdpController() IN.\n"));
209 _tprintf (_T (
"UdpController::UdpController() OUT.\n"));
214 _tprintf (_T (
"UdpController::~UdpController() IN.\n"));
223 _tprintf (_T (
"UdpController::~UdpController() OUT.\n"));
228 _tprintf (_T (
"UdpController::Init() CALL.\n"));
233bool UdpController::Start (LPCTSTR lpctszIP, USHORT wPort, LPCTSTR lpctszTargetIP, USHORT wTargetPort,
bool kickOff)
235 _tprintf (_T (
"UdpController::Start(IP:%s, Port:%d, kickoff:%d) IN.\n"), lpctszIP, wPort, kickOff);
248 if ((DWORD)ret != dwDataLen)
250 _tprintf (_T (
"UdpController::Start() Send() invalid send size (%d). reason=%d \n"), ret,
_connector->
GetErrNo ());
258 _tprintf (_T (
"UdpController::Start(IP:%s, Port:%d, kickoff:%d) OUT.\n"), lpctszIP, wPort, kickOff);
264 _tprintf (_T (
"UdpController::SetClient(IP:%s, Port:%d) IN.\n"), lpctszIP, wPort);
265 _tprintf (_T (
"UdpController::SetClient(IP:%s, Port:%d) OUT.\n"), lpctszIP, wPort);
271 _tprintf (_T (
"UdpController::Stop() CALL.\n"));
278 _tprintf (_T (
"UdpController::Invoke(LPVOID) IN.\n"));
283 while (
_stop ==
false)
288 _tprintf (_T (
"UdpController::Invoke() recvSize=%d Socket disconnected. reason:%d\n"),
293 DumpData (_T (
"UDP"), 0, byData, recvSize);
295 _tprintf (_T (
"%d\r"), count++);
300 if (sendSize != dataLen)
302 _tprintf (_T (
"UdpController::Invoke() send=%d sended=%d Invalid send size. reason:%d\n"),
308 _tprintf (_T (
"UdpController::Invoke(LPVOID) OUT.\n"));
bool SetClient(LPCTSTR lpctszIP, USHORT wPort)
bool Start(LPCTSTR lpctszIP, USHORT wPort, LPCTSTR lpctszTargetIP, USHORT wTargetPort, bool kickOff)
alt::SocketBuilder * _builder
alt::UdpConnector * _connector
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
BOOL APIENTRY Close()
使用しなくなったハンドルはこれでクローズします。
ソケットに関するWindowsAPIを集約したクラス
int APIENTRY Startup()
Windowsソケットの使用準備
UdpConnector *APIENTRY CreateUdpConnector(LPCTSTR lpctszIpAddr, u_short portNo)
UdpConnectorの作成
DWORD APIENTRY GetErrNo() const
WinSock API呼び出し時にエラーとなった時、 エラーの詳細を返します。
int APIENTRY Close()
ソケットが使用されていた場合、クローズします。
文字列に関するWindowsAPIを集約したクラス
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
LPTSTR APIENTRY Ptr() const
内部で確保している文字列ポインタを取得します。
スレッドに関するWindowsAPIを集約したクラス
BOOL APIENTRY Create(PTHREAD_START_ROUTINE function=NULL, LPVOID lpvParam=NULL, DWORD dwCreationFlag=0)
スレッドを作成します。
INT APIENTRY Send(LPVOID lpvBuf, DWORD dwSize) const
UDP送信処理
INT APIENTRY Recv(LPVOID lpvBuf, DWORD dwSize) const
UDP受信処理
BOOL APIENTRY SetSockAddr(LPCTSTR lpctszAddress, u_short portNo)
UDP送信先アドレスの設定
DWORD APIENTRY Wait(DWORD dwWaitTime=INFINITE) const
シグナル状態になるとブロックを解除します。
Threadクラスのスレッド実行関数を設定します。