ソケット拡張により、ソケット通信関数への低レベルなインターフェース が実装され、クライアントとしてだけでなく、ソケットサーバーとして動 作することが可能となります。
より一般的なクライアントサイドのソケットインターフェースについては、 fsockopen() および pfsockopen()を参照下さい。
ここで説明するソケット関数を使用する場合、多くの関数は、C言語に同 じ名前の関数が存在しますが、定義が異なっていることに注意して下さい。 混乱を避けるには、説明をよく読んで下さい。
このようにソケットソケットプログラミングと異なっている点はあります が、それでも有用な多くのUNIX man ページを参照することができます。 Web上にC言語のソケットプログラミングのチュートリアル情報が存在し、 その多くは、若干の修正により、PHPにおけるソケットプログラミングに 適当することが可能です。 UNIX Socket FAQが、手始めと して適しているでしょう。
警告 |
このモジュールは、実験的なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。 |
ここに既述されたソケット関数はPHP拡張モジュールの一部であり、コン パイル時にconfigureにオプション--enable-socketsを指定することにより使用 可能となります。
これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。
ソケット拡張モジュールは、強力なBSDソケットへの有用なインターフェ イスを提供するために作成されました。 関数は、Win32およびUNIXの実装において等しく動作するように注意が払 われています。ソケット関数の多くは特定の条件で失敗し、エラーを記 述するE_WARNINGメッセージを出力します。 これは、時々開発者が望まない時に発生することがあります。例えば、 関数 socket_read() は突然 E_WARNING メッセージを出力する可能性がありま す。これは、予測しない接続断が発生したためです。 @演算子により警告出力を抑制し、 socket_last_error()関数によりアプリケーション 内でエラーコードを取得することが一般に行われています。 エラーを記述する文字列を取得するためにこのエラーコードを指定して socket_strerror()関数をコールすることが可能で す。詳細は、この関数の説明を参照して下さい。
注意 E_WARNINGメッセージは、ソケット拡張モジュー ルにより英語で生成されますが、取得されるエラーメッセージは、カレ ントのロケール(LC_MESSAGES)に依存します。
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet
例 2ソケットの例: 簡易 TCP/IP クライアント この例は、簡単な一回限りのHTTPクライアントです。ここでは、あるペー ジに接続し、HEADリクエストを送信し、応答を出力た後、終了します。
|