CAsyncSocket::Create

更新 : 2007 年 11 月

ソケット オブジェクトを構築後、Create メンバ関数を呼び出して、Windows ソケットを作成し、オブジェクトに関連付けます。

BOOL Create(
   UINT nSocketPort = 0,
   int nSocketType = SOCK_STREAM,
   long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
   LPCTSTR lpszSocketAddress = NULL 
);

パラメータ

  • nSocketPort
    ソケットで使う既知のポート。Windows ソケットにポートを選択させるときは 0 を指定します。

  • nSocketType
    SOCK_STREAM または SOCK_DGRAM

  • lEvent
    アプリケーションが必要とするネットワーク イベントの組み合わせを指定するビットマスク。

    • FD_READ   読み込み準備完了通知の受信を要求。

    • FD_WRITE   書き込み準備完了通知の受信を要求。

    • FD_OOB   帯域外のデータ到達通知の受信を要求。

    • FD_ACCEPT   接続確認通知の受信を要求。

    • FD_CONNECT   接続結果通知の受信を要求。

    • FD_CLOSE   ソケットがピアから閉じられたときの通知の受信を要求。

  • lpszSockAddress
    接続されたソケットのネットワーク アドレスをドット区切りの数値 ("128.56.22.8" など) として保持する文字列へのポインタです。このパラメータに NULL 文字列を指定した場合、CAsyncSocket インスタンスは、すべてのネットワーク インターフェイス上でクライアントのアクティビティを待機します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。GetLastError を呼び出すと、固有のエラー コードを取得できます。このメンバ関数では、次のエラーが発生します。

  • WSANOTINITIALISED   この API を使う前に AfxSocketInit の呼び出しが正常終了していることが必要です。

  • WSAENETDOWN   Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。

  • WSAEAFNOSUPPORT   指定したアドレス ファミリはサポートしていません。

  • WSAEINPROGRESS   実行中の Windows ソケット呼び出しがブロッキングされています。

  • WSAEMFILE   利用できるファイル記述子がありません。

  • WSAENOBUFS   利用できるバッファ領域がありません。ソケットは作成できません。

  • WSAEPROTONOSUPPORT   指定したポートはサポートしていません。

  • WSAEPROTOTYPE   指定したポートの型が正しくありません。

  • WSAESOCKTNOSUPPORT   指定したソケットの方は、このアドレス ファミリではサポートしていません。

解説

CreateSocket を呼び出し、これが成功すると、Bind を呼び出してソケットを特定のアドレスにバインドします。サポートされているソケット型は次のとおりです。

  • SOCK_STREAM   連続した、信頼性のある、全二重の、接続ベースのバイト ストリームが用意されます。インターネット アドレス ファミリでは、伝送制御プロトコル (TCP) を使います。

  • SOCK_DGRAM   データグラムをサポートします。データグラムは、接続を必要とせず、固定最大長 (通常は短い) の信頼性の低いパケットです。インターネット アドレス ファミリでは、ユーザー データグラム プロトコル (UDP: User Datagram Protocol) を使います。

    xz019029.alert_note(ja-jp,VS.90).gifメモ :

    Accept メンバ関数には、新しい空の CSocket オブジェクトへの参照をパラメータとして渡します。Accept を呼び出す前に、このオブジェクトを構築します。このソケット オブジェクトがスコープ外に出ると、接続は閉じられます。このソケット オブジェクトを新規作成するときに、Create を呼び出さないでください。

ストリーム ソケットとデータグラム ソケットの詳細については、「Windows ソケット : 予備知識」、「Windows ソケット : ポートとソケット アドレス」、および「Windows Sockets 2 API」を参照してください。

必要条件

ヘッダー : afxsock.h

参照

参照

CAsyncSocket クラス

階層図

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown

その他の技術情報

CAsyncSocket のメンバ