Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
alt::SocketBuilder クラス

ソケットに関するWindowsAPIを集約したクラス [詳解]

#include <SocketBuilder.h>

alt::SocketBuilder の継承関係図
alt::SocketLibrary alt::WindowsLibrary

公開メンバ関数

APIENTRY SocketBuilder ()
 コンストラクタ
 
APIENTRY ~SocketBuilder ()
 デストラクタ
 
BOOL CancelWait ()
 Wait()待機中のキャンセル処理
 
TcpConnector *APIENTRY CreateTcpConnector (LPCTSTR lpctszIpAddr, u_short portNo, int retryInterval, int retryCount)
 TcpConnectorの作成
 
UdpConnector *APIENTRY CreateUdpConnector (LPCTSTR lpctszIpAddr, u_short portNo)
 UdpConnectorの作成
 
BOOL APIENTRY GetHostByName (LPCTSTR lpctszHostName, LPCTSTR lptszIpAddr) const
 ホスト名からIPアドレスのDNS解決
 
BOOL APIENTRY Prepare (u_short portNo, LPCTSTR lpctszIpAddr=NULL)
 TCPポートのlisten(),accept()の準備
 
int APIENTRY Startup ()
 Windowsソケットの使用準備
 
TcpConnector *APIENTRY Wait ()
 TCP接続のlisten(),accept()待機関数
 
- 基底クラス alt::SocketLibrary に属する継承公開メンバ関数
APIENTRY SocketLibrary ()
 コンストラクタ
 
APIENTRY ~SocketLibrary ()
 デストラクタ
 
int APIENTRY Close ()
 ソケットが使用されていた場合、クローズします。
 
DWORD APIENTRY GetErrNo () const
 WinSock API呼び出し時にエラーとなった時、 エラーの詳細を返します。
 
BOOL APIENTRY SetKeepAliveValue (ULONG onoff, ULONG time, ULONG interval) const
 KeepAlive送出タイミング、間隔をセッション個別に設定します。
 
- 基底クラス alt::WindowsLibrary に属する継承公開メンバ関数
APIENTRY WindowsLibrary ()
 コンストラクタ
 
virtual APIENTRY ~WindowsLibrary ()
 デストラクタ
 
virtual DWORD APIENTRY GetErrNo () const
 WindowsAPIのエラー値を取得します。
 
virtual VOID APIENTRY SetErrNo ()
 WINAPIエラーの情報を設定します。
 

限定公開メンバ関数

BOOL APIENTRY Bind () const
 
BOOL APIENTRY Connect () const
 
BOOL APIENTRY Ioctl (long cmd, u_long arg) const
 
BOOL APIENTRY Listen () const
 
BOOL APIENTRY SetSockAddr (ADDRESS_FAMILY family, u_short portNo, LPCTSTR lpctszAddress)
 
BOOL APIENTRY SetSockOpt (int level, int optname, int value) const
 
BOOL APIENTRY Socket (int af, int type, int protocol)
 
- 基底クラス alt::SocketLibrary に属する継承限定公開メンバ関数
int APIENTRY WSAIoctl (DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD dwInBuffer, LPVOID lpvOutBuffer, DWORD dwOutBuffer, LPDWORD lpdwBytesReturned, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine) const
 

限定公開変数類

SOCKADDR_IN _SockAddrIn
 
WSADATA _wsaData
 
WSAEVENT _wsaEvent
 
- 基底クラス alt::SocketLibrary に属する継承限定公開変数類
SOCKET _socket
 このクラスで管理するソケットオブジェクト
 
- 基底クラス alt::WindowsLibrary に属する継承限定公開変数類
DWORD _dwErrorNo
 

詳解

ソケットに関するWindowsAPIを集約したクラス

SocketBuilder.h17 行目に定義があります。

構築子と解体子

◆ SocketBuilder()

SocketBuilder::SocketBuilder ( )

コンストラクタ

SocketBuilder.cpp12 行目に定義があります。

参照先 _SockAddrIn, _wsaData, _wsaEvent.

◆ ~SocketBuilder()

SocketBuilder::~SocketBuilder ( )

デストラクタ

todo:
TCPConnectorだけ存続させる場合を考慮できていない

SocketBuilder.cpp19 行目に定義があります。

参照先 alt::SocketLibrary::Close().

関数詳解

◆ Bind()

BOOL SocketBuilder::Bind ( ) const
protected

SocketBuilder.cpp97 行目に定義があります。

参照先 _SockAddrIn, alt::SocketLibrary::_socket.

参照元 CreateUdpConnector(), Prepare().

◆ CancelWait()

BOOL SocketBuilder::CancelWait ( )

Wait()待機中のキャンセル処理

戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

SocketBuilder.cpp366 行目に定義があります。

参照先 _wsaEvent.

参照元 WindowsLibraryTest::TEST_CLASS().

◆ Connect()

BOOL SocketBuilder::Connect ( ) const
protected

SocketBuilder.cpp83 行目に定義があります。

参照先 _SockAddrIn, alt::SocketLibrary::_socket.

参照元 CreateTcpConnector().

◆ CreateTcpConnector()

TcpConnector * SocketBuilder::CreateTcpConnector ( LPCTSTR  lpctszIpAddr,
u_short  portNo,
int  retryInterval,
int  retryCount 
)

TcpConnectorの作成

引数
lpctszIpAddr設定する自身のIPアドレス
portNo設定する自身のポート番号
retryIntervalリトライ間隔(ms)
retryCountリトライ回数
戻り値
TcpConnector*

SocketBuilder.cpp169 行目に定義があります。

参照先 alt::SocketLibrary::_socket, alt::SocketLibrary::Close(), Connect(), alt::SocketLibrary::GetErrNo(), Ioctl(), SetSockAddr(), SetSockOpt(), Socket().

参照元 PerfCheck::TcpProxy::Init(), PerfCheck::TcpClient::Start(), WindowsLibraryTest::TEST_CLASS().

◆ CreateUdpConnector()

UdpConnector * SocketBuilder::CreateUdpConnector ( LPCTSTR  lpctszIpAddr,
u_short  portNo 
)

UdpConnectorの作成

引数
lpctszIpAddr設定する自身のIPアドレス
portNo設定する自身のポート番号
戻り値
UdpConnector*

SocketBuilder.cpp138 行目に定義があります。

参照先 alt::SocketLibrary::_socket, Bind(), alt::SocketLibrary::Close(), SetSockAddr(), Socket().

参照元 PerfCheck::UdpController::Start(), WindowsLibraryTest::TEST_CLASS().

◆ GetHostByName()

BOOL SocketBuilder::GetHostByName ( LPCTSTR  lpctszHostName,
LPCTSTR  lptszIpAddr 
) const

ホスト名からIPアドレスのDNS解決

引数
lpctszHostNameホスト名
lptszIpAddrDNS名前解決されたIPアドレス
戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

SocketBuilder.cpp371 行目に定義があります。

参照元 WindowsLibraryTest::TEST_CLASS().

◆ Ioctl()

BOOL SocketBuilder::Ioctl ( long  cmd,
u_long  arg 
) const
protected

◆ Listen()

BOOL SocketBuilder::Listen ( ) const
protected

SocketBuilder.cpp110 行目に定義があります。

参照先 alt::SocketLibrary::_socket.

参照元 Prepare().

◆ Prepare()

BOOL SocketBuilder::Prepare ( u_short  portNo,
LPCTSTR  lpctszIpAddr = NULL 
)

TCPポートのlisten(),accept()の準備

引数
portNo待機ポート番号
lpctszIpAddr待機IPアドレス
戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

SocketBuilder.cpp231 行目に定義があります。

参照先 Bind(), Listen(), SetSockAddr(), SetSockOpt(), Socket().

参照元 PerfCheck::TcpProxy::Init(), PerfCheck::TcpServer::Init(), WindowsLibraryTest::TEST_CLASS().

◆ SetSockAddr()

BOOL SocketBuilder::SetSockAddr ( ADDRESS_FAMILY  family,
u_short  portNo,
LPCTSTR  lpctszAddress 
)
protected

SocketBuilder.cpp50 行目に定義があります。

参照先 _SockAddrIn.

参照元 CreateTcpConnector(), CreateUdpConnector(), Prepare().

◆ SetSockOpt()

BOOL SocketBuilder::SetSockOpt ( int  level,
int  optname,
int  value 
) const
protected

SocketBuilder.cpp69 行目に定義があります。

参照先 alt::SocketLibrary::_socket.

参照元 CreateTcpConnector(), Prepare().

◆ Socket()

BOOL SocketBuilder::Socket ( int  af,
int  type,
int  protocol 
)
protected

SocketBuilder.cpp37 行目に定義があります。

参照先 alt::SocketLibrary::_socket.

参照元 CreateTcpConnector(), CreateUdpConnector(), Prepare().

◆ Startup()

int SocketBuilder::Startup ( )

Windowsソケットの使用準備

戻り値
int
戻り値
0(成功)
WSASYSNOTREADY(基礎となるネットワーク・サブシステムが、ネットワーク通信の準備ができていません。)
WSAVERNOTSUPPORTED(要求された Windows ソケット サポートのバージョンは、この特定の Windows ソケット実装では提供されません。)
WSAEINPROGRESS(ブロッキング Windows ソケット 1.1 操作が進行中です。)
WSAEPROCLIM(Windows ソケットの実装でサポートされているタスクの数の制限に達しました。)
WSAEFAULT(lpWSAData パラメーターが有効なポインターではありません。)
上記以外は不明なエラー
覚え書き
WSAStartup関数はこの関数の戻り値で拡張エラーコードを直接返します。WSAGetLastError関数を使用しないでください。

SocketBuilder.cpp26 行目に定義があります。

参照先 _wsaData.

参照元 PerfCheck::TcpClient::Init(), PerfCheck::UdpController::Init(), PerfCheck::TcpProxy::Init(), PerfCheck::TcpServer::Init(), WindowsLibraryTest::TEST_CLASS().

◆ Wait()

TcpConnector * SocketBuilder::Wait ( )

TCP接続のlisten(),accept()待機関数

戻り値
TcpConnector*

SocketBuilder.cpp287 行目に定義があります。

参照先 alt::SocketLibrary::_socket, _wsaEvent.

参照元 PerfCheck::TcpProxy::Init(), PerfCheck::TcpServer::Invoke(), WindowsLibraryTest::TEST_CLASS().

メンバ詳解

◆ _SockAddrIn

SOCKADDR_IN alt::SocketBuilder::_SockAddrIn
protected

SocketBuilder.h92 行目に定義があります。

参照元 SocketBuilder(), Bind(), Connect(), SetSockAddr().

◆ _wsaData

WSADATA alt::SocketBuilder::_wsaData
protected

SocketBuilder.h93 行目に定義があります。

参照元 SocketBuilder(), Startup().

◆ _wsaEvent

WSAEVENT alt::SocketBuilder::_wsaEvent
protected

SocketBuilder.h94 行目に定義があります。

参照元 SocketBuilder(), CancelWait(), Wait().


このクラス詳解は次のファイルから抽出されました: