SOC_Connect

構文

#include <nitroWiFi/soc.h>
int SOC_Connect ( int s, const void* sockAddr );

引数

s ソケット記述子。
sockAddr 相手アドレスを保持したソケットアドレス構造体(SOCSockAddr,SOCSockAddrIn)へのポインタ。

返り値

0以上 成功。
SOC_EINPROGRESS 接続が完了していません。(sが非封鎖モードのストリーム・ソケットの場合)
SOC_EINVAL ソケット記述子の値が不正です。( s < 0 か存在しないソケット) または、ソケットがクローズ処理中です。
SOC_EISCONN 接続済みです。(sが封鎖モードのストリーム・ソケットの場合)
SOC_EMFILE リソース不足です。
SOC_ENETRESET ソケットライブラリが初期化されていません。
SOC_ENOBUFS リソース不足です。(sが非封鎖モードのストリーム・ソケットの場合)
SOC_ETIMEDOUT 接続タイムアウトが発生しました。(sがストリーム・ソケットの場合)

注意:追加のエラーが今後のライブラリリリースで生じたり返されることがあります。すべての負の返り値は汎用のエラーとして扱ってください。

説明

sockAddr で指定された先へ接続を試みます。SOC_Bind() でローカルポートをバインドしていない場合、ソケットライブラリで使用されていないポートをバインドします。

封鎖モードのストリーム・ソケット(TCP)は、接続が確立するか接続が失敗するまでブロックします。非封鎖モードの場合は SOC_Connect() は接続の結果を待たず返ります。

データグラム・ソケットに対しては、SOC_Connect() はデータグラムの送受信相手を固定します。
後続の SOC_Send()によって送信されるデータグラムは、すべて指定した相手アドレスに向けられます。また後続のSOC_Recv()は設定した相手アドレスからのデータグラムだけを受け取ります。
sockAddrport フィールドと addr フィールドを 0 にすると相手アドレスをリセットします。

参照

SOC_Socket SOC_Bind, SOC_Recv, SOC_Send, SOC_Fcntl

履歴

2008/05/13 返り値の修正、説明の修正
2006/01/13 返値の修正
2005/09/13 初版