int fsockopen
(string hostname, int port, int [errno], string [errstr], double
[timeout]);Internet (AF_INET) ドメインまたは Unix (AF_UNIX)ドメインにおいて ストリーム接続を初期化します。 Internet ドメインの場合、 hostname のポート port へのTCPソケット接続がオープンされます。 Unix ドメインの場合、hostname あhソケットへの パスとして使用され、port はこの場合0とする 必要があります。 オプションのtimeout により接続システムコール がタイムアウトするまでの秒数を指定することが可能です。
fsockopen()は、ファイルポインタを返します。 このファイルポインタは、 (fgets(),fgetss(), fputs(), fclose(), feof() のような) 他のファイル関数で使用可能です。
呼び出しに失敗すると FALSE が返され、オプションの errnoおよびerrstr 引数が指定されている場合、システムレベル の connect() コールで生じた 実際のシステムレベルエラーを示すように設定されます。 errno は 0 なのに、返り値がFALSEであれば、connect()の呼び出しの前に エラーが発生したことを示します。この場合、おそらくはソケットの初期化に 原因があります。引数 errno および errstr は参照渡しでなければならない ことに注意してください。
環境により、UNIXドメインまたはオプションの接続タイムアウトは利用 できません。
ソケットはデフォルトでブロックモードで開かれます。 set_socket_blocking()を使用して、 非ブロックモードに切換えることができます。
例 1. fsockopen の例
|