WSAConnectは、指定のアドレスのサーバに接続するWindowsAPI・・・。
これまではtelnetでサーバに接続していたが、それでは入力に問題があるため、WSAConnectで接続するクライアントを作る・・・。
2つプロジェクトを作る・・・。
WSAConnectはクライアント側、WSANtohsはサーバ側である・・・。
(WSANtohsソリューションからWSANtohsプロジェクトを持ってきただけ・・・。)
そして、WSANtohsをスタートアッププロジェクトに設定しておく・・・。
WSANtohsプロジェクトのWSANtohs.cppは、
WSAAcceptしたら、接続してきたクライアントのIPアドレス、ポート番号を出力するだけ・・・。
WSAConnectプロジェクトのWSAConnect.cppは、
ホスト名、ポート番号の入力・・・。
ホスト情報(IPアドレス)の取得・・・。
ソケットを作成し、saiTargetAddrにIPアドレス、ポート番号をセット・・・。
WSAConnectでsaiTargetAddrにセットしたサーバに接続する・・・。
ソリューションをビルドして実行すると、スタートアッププロジェクトのWSANtohs(サーバ側)のほうが実行される・・・。
WSAStartup success! soc = 124 port = 0fa0, ns_port = a00f setsockopt(SO_REUSEADDR) success. bind Success. listen success.
この状態で、コマンドプロンプトからWSAConnect.exeを実行する・・・。
C:\>cd C:\Project\Cloud\github.com\Sample\winapi\WSAConnect\WSAConnect\src\WSACo nnect\release C:\Project\Cloud\github.com\Sample\winapi\WSAConnect\WSAConnect\src\WSAConnect\r elease>WSAConnect.exe WSAStartup success! hostname: localhost port: 4000 host->h_addr_list[0][0] = 7f, host->h_addr_list[0][1] = 00, host->h_addr_list[0] [3] = 00, host->h_addr_list[0][3] = 01 soc = 360 port = 0fa0, ns_port = a00f WSAConnect success.
hostnameに"localhost"、portに4000を入力すると、接続に成功する・・・。
サーバ側には、
WSAStartup success! soc = 124 port = 0fa0, ns_port = a00f setsockopt(SO_REUSEADDR) success. bind Success. listen success. acc = 120 accept!(IPAddress = 127.0.0.1, Port = 53187) 続行するには何かキーを押してください . . .
接続してきたクライアントに関する情報が出力される・・・。
Sample/WSAConnect.cpp at master · bg1bgst333/Sample · GitHub
Sample/WSANtohs.cpp at master · bg1bgst333/Sample · GitHub