ソケット拡張により、ソケット通信関数への低レベルなインターフェース
が実装され、クライアントとしてだけでなく、ソケットサーバーとして動 作することが可能となります。
より一般的なクライアントサイドのソケットインターフェースについては、
fsockopen()
および
pfsockopen()
を参照下さい。
ここで説明するソケット関数を使用する場合、多くの関数は、C言語に同
じ名前の関数が存在しますが、定義が異なっていることに注意して下さい。
混乱を避けるには、説明をよく読んで下さい。
このようにソケットソケットプログラミングと異なっている点はあります
が、それでも有用な多くのUNIX man ページを参照することができます。
Web上にC言語のソケットプログラミングのチュートリアル情報が存在し、
その多くは、若干の修正により、PHPにおけるソケットプログラミングに 適当することが可能です。
UNIX Socket FAQ
が、手始めと して適しているでしょう。
警告 |
|
ここに既述されたソケット関数は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
|