Windows ソケット : 予備知識
ここでは、Windows ソケットの特性と目的を説明します。また、" HOWTO:
定義する用語" を "ソケット。
ソケットのハンドルのデータ型を記述します。
ソケットの使用について説明します。
Windows ソケットの仕様は、Microsoft Windows の binary 互換性のあるネットワーク プログラミング インターフェイスを定義します。Windows ソケットは州立拡張 (カリフォルニア校から Berkeley Software Distribution Release 4.3)、(BSD ソケットの UNIX の実装に基づいています。仕様は、Windows に固有の BSD ソケット スタイルの両方のルーチン、および拡張機能が含まれます。Windows ソケットの代入を使用して Windows ソケット API 準拠するネットワーク経由で通信するアプリケーション。Win32 で、Windows ソケットはスレッド セーフを提供します。
Transmission Control Protocol/Internet Protocol (TCP/IP)、Xerox Network System (XNS)、Digital Equipment Corporation's DECNet protocol、Novell Corporation's Internet Packet Exchange/Sequenced Packed Exchange (IPX/SPX) などを含むネットワーク プロトコル配下で、多くのネットワーク ソフトウェア ベンダーが Windows Sockets をサポートしています。 現在の Windows ソケット仕様で TCP/IP ソケットの抽象化を定義し、どのネットワーク プロトコルが Windows ソケットに、ダイナミック リンク ライブラリ (DLL) 独自のバージョンを指定して、実装の Windows ソケットを使用できます。Windows ソケットで書き込まれました (商用アプリケーションの例では X Windows Server、ターミナル エミュレーターおよび電子メール システムが含まれます。
[!メモ]
Windows ソケットの目的は、基になるネットワークを抽出することで、ネットワークについて知識が不要なため、アプリケーションでは、任意のネットワークでのソケット サポートを実行できるようにします。その結果、このドキュメントでは、ネットワーク プロトコルの詳細については説明しません。
Microsoft Foundation Class ライブラリ (MFC) は、2 種類のクラスを指定して、Windows ソケット API を使用したプログラミングをサポートします。これらのクラスの 1 つが、CSocket、抽象化により、ネットワーク通信プログラミングを簡単にするための高水準を提供します。
Windows ソケット仕様、Windows ソケット: バージョン 1.1 で Microsoft Windows の下に、計算するネットワークの開いているインターフェイスは、TCP/IP のコミュニティの個人と、企業の多数ように開いているネットワークの標準開発および使用に自由に使用できます。インターネット プロトコルのスイートを使用して通信モデルで 1 "のドメイン" を、現在プログラムするソケット。仕様は Windows SDKで使用できます。
ヒント |
---|
ソケットでインターネット プロトコルのスイートを使用するため、情報ハイウェー "の" インターネット通信をサポートするアプリケーションの優先ルートです。 |
ソケットの定義
ソケットは通信エンドポイント— Windows ソケット アプリケーションがネットワーク経由でデータ パケットが送受信するオブジェクトです。ソケットは、型の実行中のプロセスに関連付けられ、名前を持つ場合があります。現在、"コミュニケーション同じドメインの他のソケットでのみ一般に、ソケット データ交換"、インターネット プロトコルのスイートを使用します。
どちらのソケットは双方向;。これらはいずれの方向で同時に伝えることができるデータ フローです (双方向通信)。
2 個のソケットの種類を使用できます。:
ストリーム ソケット
ストリーム ソケットにはレコードの境界のないデータ フローが用意されています: バイトのストリーム。ストリームが正しく渡され、シーケンス化および unduplicated するとは限りません。
データグラム ソケット
データグラム ソケットで提供されることが保証されるサポートし、送信または unduplicated ように、配列されることがあります。レコード指向のデータをフロー。
"パケットが送信される順序で渡される配列" されたことを意味します。"Unduplicated" は一度だけ特定のパケットを取得することを意味します。
[!メモ]
ネットワーク プロトコルの下に、XNS など、ストリームはバイトのストリームではなくレコードのストリームとして、に繰り返すレコードです。ただし、共通の TCP/IP プロトコルの下にストリームはバイト ストリームです。Windows ソケットは、基になるプロトコルに依存しない抽象化のレベルを提供します。
これらの型については、どちらので使用する種類のソケット Windows ソケット: ストリーム ソケット と Windows ソケット: データグラム ソケットを参照してください。
ソケット データ型
各 MFC ソケットのオブジェクトは、Windows ソケット オブジェクトへのハンドルをカプセル化します。このハンドルのデータ型は [ソケット]です。[ソケット] のハンドルはウィンドウの HWND に似ています。MFC ソケットのクラスは、カプセル化されたハンドルでの操作を提供します。
[ソケット] のデータ型は Windows SDKで詳しく説明します。Windows ソケットの下に "ソケット データ型とエラー値" を参照してください。
ソケットの使用
ソケットは 3 文字以上の通信コンテキストに便利です:
クライアント/サーバモデル。
メッセージ アプリケーションなど、シナリオ、ピアツーピア。
リモート プロシージャ コール (RPC) を受信するアプリケーションを追加することによりしての関数呼び出しとしてメッセージを解釈します。
ヒント |
---|
MFC ソケットを使用するための最適な場合に、通信の両方の終了を記述しているときです: 両端に MFC を使用する。このトピックの詳細については、非 MFC アプリケーションとの通信を実行中に含まれているケースを管理する方法を、Windows ソケット: 命令サイズ]を参照してください。 |
詳細については、Windows ソケットの仕様を参照: ntohs、ntohl、htons、htonl。または、次のトピックを参照: