PHP Java ソケット通信
Java で書かれた Nio Socket Server は、PHP で書かれたページからコマンドを送信する必要があります。
?
Java ソケットサーバーのメインコード:
?public static void main(String args[]) {
??System.out.println("Start Server....");
??try {
???サーバー = new ServerSocket(8083);
???while(true) {
????Socket client =server.accept();
???System.out.println( client . getInetAddress().toString());
????BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
????PrintWriter pw = new PrintWriter(client.getOutputStream ( ),true);
????String m = br.readLine();? \ここでは readLine() メソッドが呼び出されるため、デフォルトでは n が読み取られた後に実行が完了します。したがって、PHP クライアントによって渡される値の末尾に n を追加します。 それ以外の場合、コードはこの行で停止し、それ以降は実行されません。
????System.out.println("クライアント メッセージ:" m);
???System.out.println("クライアント IP:" client.getInetAddress() .toString());
????pw.write("こんにちは、Java Server から来ました");
????pw.flush();
????pw。 close();
????br.close();
????client.close();
????
????
??? }
??} catch (IOException e) {
???// TODO 自動生成された catch ブロック
???e.printStackTrace();
??}
?}
?
?
?
PHP ページがリクエストを送信します:
?$socket =socket_create(AF_INET,SOCK_STREAM,SOL_TCP) または die('ソケットに接続できませんでした');
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec "=>1,"usec"=>0));
$connect =socket_connect($socket,'10.50.70.195',8083);
$output = iconv("utf-8","gbk","This is From Messagen");
socket_write ($socket,$output,strlen($output));
//この行のコメント? $str =ソケット_read($socket,1024,PHP_NORMAL_READ); PHP_NORMAL_READ が追加された場合、PHP クライアントはサーバーから返された値を読み取ることができません。そして、エラーが報告されます: [function.socket-read]: ソケット [0] から読み取れません:。 。 。 。
$str =socket_read($socket,1024);
echo $str;
socket_close($socket);
?>
?
?
?
?