0

Java Knopflerfish クライアント バンドルと PHP (Web ではなく CLI) サーバー間のソケットで奇妙な問題が発生しています。

クライアント/サーバーのペアは、両方がローカルホストにある場合に正常に機能し、すべてのデータが正常に送信されます。ただし、Java クライアントが別のマシンに存在する場合、サーバーへの接続は成功しますが、PHP スクリプトはデータを受信しません。パケット分析により、Java クライアントから送信されたデータがサーバーによって受信されたことが確認されました。PHP はデータを取得する際に問題があるようです。

補足として、クライアントとして telnet を使用していくつかのテストを行いました。PHP サーバー スクリプトは、どのホストからでもすべてのデータを正常に受信します。これは、問題が Java がソケットを設定する方法に関係があるか、または私がよく知らないネットワークの問題があると信じるように導きます。任意の考えをいただければ幸いです。必要に応じてコード サンプルを投稿できます。

4

2 に答える 2

0

クライアント側でバッファをフラッシュするのを忘れている可能性があります。telnet はすべての行に対してフラッシュを行うため、それが機能する理由を説明できます。

于 2010-04-20T16:35:54.170 に答える
0

競合状態であることが判明しました。接続を受信した後、socket_read を実行する前に数ミリ秒間スリープすると、うまく機能します。

于 2010-04-20T17:39:36.490 に答える