問題タブ [php-socket]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP ソケットが正しく機能しない
127.0.0.1 のポート 1122 を介して着信要求をリッスンするサーバーを確立しました。コードは次のとおりです。
これはクライアントをリッスンし、inout の逆の値を返します。
コードでエラーが発生することはありません。実際、localhost/socket.php にアクセスすると、読み込みが継続されます。
terraterm を使用して telnet 接続を開くと、白いページが表示されます。値を入力したりキーを打ったりすると、接続が失われます。
なぜこれが起こっているのですか?
敬具
php - 先頭の長さの値を持つソケットデータを送信する
PHPソケットを使用してネットワーク接続を介してPHPスクリプトからC#アプリにJSONメッセージを送信したいと思います。
通常、バイナリプロトコルの場合、すべてのメッセージの最初の4バイトは、メッセージの長さ(バイト数)を表す整数である必要があります。
C#では、すべてのメッセージの前に、メッセージの長さを示す整数を次のように付けます。
私が理解しているように、PHPでは関数socket_sendは文字列のみを受け入れます。では、PHP 5.xで同じプレフィックスを作成するにはどうすればよいですか?
更新:ネットワークソケットから受信したときにそのようなプレフィックス付きデータを処理する方法についてのフォローアップ質問を投稿しました。
php - 先頭の長さの値を使用してソケット データを処理する
これは、ネットワーク ソケットから受信したプレフィックス付きメッセージの処理方法に関する追加の質問です。私がやろうとしていることは次のとおりです。
- 最初の 4 バイトを読み取ります (これは $prefix であり、メッセージの長さを表します)
- $prefix のサイズが実際に 4 バイトで、整数かどうかを確認します
- $prefix からの長さを使用して完全な $message を読み取ります
- メッセージのサイズが実際に $prefix バイトであるかどうかを確認します
これまでのところ、次の 2 行のコードがあります。
上記のチェックを行うにはどうすればよいですか?
補足: ネットワーク ソケット接続を介して送信されるすべてのデータは UTF8、リトル エンディアンです。
php - ノンブロッキング ソケットに接続できません
これは私を夢中にさせます。どちらもノンブロッキング ソケットを使用して、クライアントがサーバーに接続する php 5.3 で非常に単純なノンブロッキング ソケット スクリプトを作成する必要があります。
phpsocketdaemonとphp manualの例を試しましたが、どちらの場合もサーバーに接続しようとすると次のエラーが発生します。
エラーが発生したクライアントスクリプト:
Win 7 で Zend Server 5.6.0 SP1 の無料版を使用しています。
この問題を解決する方法を知っている人、またはノンブロッキング ソケット クライアント/サーバー スクリプトの簡単でわかりやすい例を知っている人はいますか?
php - パラメータとしてのパラメータ$tv_secまたは$tv_usecは何をしますか?
サーバースクリプトが呼び出す単純なソケットphp5.3スクリプトを作成しました...
...ループ内。非ブロッキングソケットを使用していて、スクリプトはWin7マシンで実行されています。
問題:この関数はスクリプトを2秒間ブロックします。これは、4番目のパラメーター($ tv_sec)がこのブロックを引き起こすことを意味します。
私の質問:$tv_sec
またはの違いは何$tv_usec
ですか?何をし$tv_usec
ますか?
PHPマニュアルの関数の説明:
tv_sec: tv_secとtv_usecが一緒になってタイムアウトパラメータを形成します。タイムアウトは、socket_select()が戻るまでに経過した時間の上限です。tv_secがゼロの場合、socket_select()がすぐに返されます。これはポーリングに役立ちます。tv_secがNULL(タイムアウトなし)の場合、socket_select()は無期限にブロックできます。
tv_usec:説明なし
php - 1バイトを符号なしバイトとして読み取る
phpスクリプトで遊ぼうとしているJavaサーバーがいくつかあります。
この形式は、メッセージが符号なしバイトとして受け取るバイト数と、文字列を構成するバイトを提供します。
これが私の機能と解説です
私は実際にはPHPの人ではなく、Javaの人であるため、この長さを取得する方法がわかりません。
@ c0le2のリクエストで、次の編集を行いました
次のエラーが発生しました
php - Firefox12でWebソケットが機能しない
Firefoxは、ws://192.168.0.155:5555 / socket/server3.phpのサーバーへの接続を確立できません。
私のコードに間違ったwts??
php - Ubuntu12.04システムでPHP5.3.10でソケットを有効にする方法
LinuxのPHPでSocketを有効にしようとしています。php.iniを確認しましたが、そのファイルでは次の行が表示されません。
php - ソケット操作が行われているときにデータを書き込むにはどうすればよいですか
私はソケットに不慣れで、ソケットがサーバーからデータをフェッチしている間に、ユーザーに待機するように指示するデータを表示しようとしていますが、ob_flush、flush、およびその他の関数も使用しましたが、機能しませんでした。テキスト「読み込み中....お待ちください」は、ソケットが閉じられた後にのみ表示されます。これが私のコードです
解決策があれば、助けてください。前もって感謝します
php - PHPのソケット接続を介してPOST経由でオブジェクトの配列を送信できません
私はphpがまったく初めてです。ページAにいる間にA.phpとB.phpがページBを実行できるようにする2つのページがありました。そのために、ソケット接続を作成し、ページBを実行できましたが、問題は、オブジェクトの配列を送信するときですページ B.page A には、配列にリストされている最初のオブジェクトのみが送信され、配列の他の値は何もありませんでした。ここには、A.php のコードがあります。
IN B.php
配列の最初の要素としてリストされているため、「メッセージ」のみを取得します