CAsyncSocket::Connect
更新 : 2007 年 11 月
未接続のストリーム ソケットまたはデータグラム ソケットへの接続を確立します。
BOOL Connect(
LPCTSTR lpszHostAddress,
UINT nHostPort
);
BOOL Connect(
const SOCKADDR* lpSockAddr,
int nSockAddrLen
);
パラメータ
lpszHostAddress
オブジェクトを接続するソケットのネットワーク アドレス。"ftp.microsoft.com" のようなコンピュータ名、または "128.56.22.8" のようにドットで区切られた数字を指定します。nHostPort
ソケット アプリケーションを識別するポート。lpSockAddr
接続するソケットのアドレスを保持する SOCKADDR 構造体へのポインタ。nSockAddrLen
lpSockAddr 内のアドレス長。バイト単位で指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。GetLastError を呼び出すと、固有のエラー コードを取得できます。エラー コードが WSAEWOULDBLOCK で、アプリケーションがオーバーライド可能なコールバックを使っている場合は、接続操作が完了すると、アプリケーションは OnConnect メッセージを受け取ります。このメンバ関数では、次のエラーが発生します。
WSANOTINITIALISED この API を使う前に AfxSocketInit の呼び出しが正常終了していることが必要です。
WSAENETDOWN Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。
WSAEADDRINUSE 指定したアドレスは使用中です。
WSAEINPROGRESS 実行中の Windows ソケット呼び出しがブロッキングされています。
WSAEADDRNOTAVAIL 指定したアドレスはローカル コンピュータからは利用できません。
WSAEAFNOSUPPORT 指定したファミリのアドレスはこのソケットでは使用できません。
WSAECONNREFUSED 接続を試みましたが、拒否されました。
WSAEDESTADDRREQ 宛先アドレスが必要です。
WSAEFAULT 引数 nSockAddrLen が不正です。
WSAEINVAL ホスト アドレスが無効です。
WSAEISCONN ソケットは既に接続されています。
WSAEMFILE 利用できるファイル記述子がありません。
WSAENETUNREACH 現時点では、このホストからネットワークに到達できません。
WSAENOBUFS 利用できるバッファ領域がありません。ソケットは接続できません。
WSAENOTSOCK 記述子がソケットではありません。
WSAETIMEDOUT 接続を試みましたが、タイムアウトで接続を確立できません。
WSAEWOULDBLOCK ソケットが非ブロッキングになっていて、接続が完了できません。
解説
ソケットがバインドされていないときは、ローカルな関連付けを行うための一意な値が自動で割り当てられ、ソケットはバインドされているとマークされます。名前の構造体のアドレス フィールドがすべて 0 のときは、Connect は 0 を返します。拡張エラー情報を取得するには、GetLastError メンバ関数を呼び出します。
SOCK_STREAM 型のストリーム ソケットでは、ほかのホストに対するアクティブな接続が起動されます。ソケットの呼び出しに成功すると、そのソケットのデータ送受信の準備が完了します。
SOCK_DGRAM 型のデータグラム ソケットでは、既定の宛先が設定されます。その後、この宛先を使って Send や Receive を呼び出します。
必要条件
ヘッダー : afxsock.h