関数・クラス解説

stream_socket_recvfrom

version:PHP 5, PHP 7 (公式)

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

公式リファレンス

書式

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

説明

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

パラメータ

socket
リモートソケット。
length
socket から受信するバイト数。
flags
flags は以下の値の組み合わせです。
flags でとりうる値
STREAM_OOB OOB (out-of-band) データを処理します。
STREAM_PEEK ソケットからデータを取得しますが、バッファを消費しません。 fread() あるいは stream_socket_recvfrom() を続けてコールした 際には、同じデータが読み込まれます。
address
address が指定された場合、 そこにはリモートソケットのアドレスが保存されます。

返値

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

注意

注意: 受信したメッセージが length パラメータより 長かった場合、ソケットの型によっては(例えば UDP など)超過分の バイトデータが捨てられてしまう可能性があります。
注意: バッファベースのストリーム関数 (fread() あるいは stream_get_line() など) をコールした後に ソケットベースのストリームで stream_socket_recvfrom() をコールすると、ストリームバッファを経由せず、データをソケットから 直接読み込みます。

サンプル

例1 stream_socket_recvfrom() の例

/* 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($socket, 1500, STREAM_OOB) . "'\n"; /* 通常の帯域内のデータを読み込みますが、バッファを消費しません */ echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n"; /* 同じパケットをもう一度読み込みます。今度はバッファからそれを削除します */ echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n"; /* ソケットを閉じます */ fclose($socket); fclose($server);

参考

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


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール