PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

stream_socket_recvfrom - 接続されているかどうかにかかわらず、ソケットからのデータを受信する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

stream_socket_recvfrom

(PHP 5, PHP 7)

stream_socket_recvfrom接続されているかどうかにかかわらず、ソケットからのデータを受信する

説明

string stream_socket_recvfrom ( resource $socket , int $length [, int $flags = 0 [, string &$address ]] )

stream_socket_recvfrom() は、 リモートソケットから最大 length バイトのデータを 受け取ります。

パラメータ

socket

リモートソケット。

length

socket から受信するバイト数。

flags

flags は以下の値の組み合わせです。
flags でとりうる値
STREAM_OOB OOB (out-of-band) データを処理します。
STREAM_PEEK ソケットからデータを取得しますが、バッファを消費しません。 fread() あるいは stream_socket_recvfrom() を続けてコールした 際には、同じデータが読み込まれます。

address

address が指定された場合、 そこにはリモートソケットのアドレスが保存されます。

返り値

読み込んだデータを文字列で返します。

例1 stream_socket_recvfrom() の例

<?php
/* localhost のポート 1234 へのサーバーソケットをオープンします */
$server stream_socket_server('tcp://127.0.0.1:1234');

/* 接続を受け付けます */
$socket stream_socket_accept($server);

/* OOB データのパケットを取得します(1500 は典型的な MTU のサイズです) */
echo "Received Out-Of-Band: '" stream_socket_recvfrom($socket1500STREAM_OOB) . "'\n";

/* 通常の帯域内のデータを読み込みますが、バッファを消費しません */
echo "Data: '" stream_socket_recvfrom($socket1500STREAM_PEEK) . "'\n";

/* 同じパケットをもう一度読み込みます。今度はバッファからそれを削除します */
echo "Data: '" stream_socket_recvfrom($socket1500) . "'\n";

/* ソケットを閉じます */
fclose($socket);
fclose($server);
?>

注意

注意:

受信したメッセージが length パラメータより 長かった場合、ソケットの型によっては(例えば UDP など)超過分の バイトデータが捨てられてしまう可能性があります。

注意:

バッファベースのストリーム関数 (fread() あるいは stream_get_line() など) をコールした後に ソケットベースのストリームで stream_socket_recvfrom() をコールすると、ストリームバッファを経由せず、データをソケットから 直接読み込みます。

参考

  • stream_socket_sendto() - 接続されているかどうかにかかわらず、ソケットにデータを送信する
  • stream_socket_client() - インターネットドメインまたは Unix ドメインのソケット接続を開く
  • stream_socket_server() - インターネットドメインまたは Unix ドメインのサーバーソケットを作成する

忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「stream_socket_recvfrom - 接続されているかどうかにかかわらず、ソケットからのデータを受信する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | stream_socket_recvfrom - 接続されているかどうかにかかわらず、ソケットからのデータを受信する」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: