基本的な Winsock アプリケーションの作成

基本的な Winsock アプリケーションを作成するには

  1. 新しい空のプロジェクトを作成します。

  2. 空の C++ ソース ファイルをプロジェクトに追加します。

  3. ビルド環境が、Microsoft Windows ソフトウェア開発キット (SDK) または以前のプラットフォーム ソフトウェア開発キット (SDK) の Include、Lib、Src ディレクトリを参照していることを確認します。

  4. ビルド環境が Winsock ライブラリ ファイル Ws2_32.lib にリンクされていることを確認します。 Winsock を使用するアプリケーションは、Ws2_32.lib ライブラリ ファイルとリンクされている必要があります。 #pragma コメントは、 Ws2_32.lib ファイルが必要であることをリンカーに示します。

  5. Winsock アプリケーションのプログラミングを開始します。 Winsock 2 ヘッダー ファイルを含めることで、Winsock API を使用します。 Winsock2.h ヘッダー ファイルには、ほとんどの Winsock 関数、構造体、および定義が含まれています。 Ws2tcpip.h ヘッダー ファイルには、TCP/IP 用の WinSock 2 Protocol-Specific Annex ドキュメントで導入された定義が含まれています。これには、IP アドレスの取得に使用される新しい関数と構造体が含まれています。

    注意

    Stdio.h は、標準の入出力 、具体的には printf() 関数に使用されます。

     

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

注意

アプリケーションが IP ヘルパー API を使用している場合は、 Iphlpapi.h ヘッダー ファイルが必要です。 Iphlpapi.h ヘッダー ファイルが必要な場合は、Winsock2.h ヘッダー ファイルの#include行を Iphlpapi.h ヘッダー ファイルの#include行の前に配置する必要があります。

Winsock2.h ヘッダー ファイルには内部的に Windows.h ヘッダー ファイルのコア要素が含まれているため、Winsock アプリケーションでは通常、Windows.h ヘッダー ファイルの#include行はありません。 Windows.h ヘッダー ファイルに#include行が必要な場合は、その前に #define WIN32_LEAN_AND_MEAN マクロを付ける必要があります。 歴史的な理由から、 Windows.h ヘッダーの既定値は、Windows ソケット 1.1 の Winsock.h ヘッダー ファイルを含めます。 Winsock.h ヘッダー ファイル内の宣言は、Windows ソケット 2.0 で必要な Winsock2.h ヘッダー ファイル内の宣言と競合します。 WIN32_LEAN_AND_MEAN マクロを使用すると、 Winsock.hWindows.h ヘッダーに含まれなくなります。 これを示す例を次に示します。

 

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

次の手順: Winsock の初期化

Winsock を使用したはじめに

サーバーとクライアントについて