0

PHP ソケットと Java ソケットの間で単純なメッセージを転送しようとしています。PHP ソケットはデータを正常に送信し、Java サーバーの応答を待っています。しかし一方で、Java サーバーのソケットはまだ PHP からのメッセージを待っています。

Javaコードは次のとおりです。

ServerSocket s = new ServerSocket(4280);
Socket sock = s.accept();
System.out.println("Connected");
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
System.out.println("Reading");
String str = br.readLine();
System.out.println("Writing");
bw.write(str);

出力:

接続済み

読む

PHPコードは次のとおりです。

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "localhost", 4280);
socket_write($socket, "Hello");
echo socket_read($socket, 10);
socket_write($socket, "Lelo");
echo socket_read($socket, 10);

出力:

ブラウザ: ローカルホストを待機中

4

2 に答える 2

3

通常、問題を引き起こす可能性のある 2 つのこと:

  • Java はメソッドを利用していますが、PHP コードでreadLine()a と return を送信していません。linefeed
  • PHP側でもフラッシュしてみてください。

コード:

改行の追加:

socket_write($socket, "Hello\r\n");
于 2013-06-21T15:24:24.357 に答える
1

String str = br.readLine();\nPHP プログラムによって送信されないa を期待します。

これを追加 :

socket_write($socket, "Hello\n" ); // <<<=== '\n' added
于 2013-06-21T15:24:13.340 に答える