php与java通过socket通信的实现代码

  demo实现的简单功能是,接受PHP端写入的字符串,然后原样返回给输出端。代码如下:

  

复制代码 代码如下:

  import java.io.*;

  import java.net.*;

  public class Server {

  public static void main(String[] args) throws IOException{

  System.out.println("Server started !\n");

  ServerSocket server=new ServerSocket(5678);

  while (true){

  Socket client=server.accept();

  System.out.println("client coming!\n");

  PrintWriter printer = new PrintWriter(client.getOutputStream());

  BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));

  String  m = reader.readLine();

  System.out.println("get infomation " + m + "\n from " + client.getInetAddress().toString());

  printer.println(m);

  printer.flush();

  printer.close();

  printer.close();

  client.close();

  System.out.println("client leaving!\n");

  }

  }

  }

  运行起来,以后该java程序将监听5678端口,当接收到消息以后,将接收的消息原样返回给客户端……

  PHP的代码如下:

  

复制代码 代码如下:

  <?php

  $socket = socket_create ( AF_INET, SOCK_STREAM, SOL_TCP ) or die ( 'could not create socket' );

  $connect = socket_connect ( $socket, '127.0.0.1', 5678 );

  //向服务端发送数据

  socket_write ( $socket, 'Hello' . "\n" );

  //接受服务端返回数据

  $str = socket_read ( $socket, 1024, PHP_NORMAL_READ );

  echo $str;

  //关闭

  socket_close($socket);

  PHP程序连接本机的5678端口,写入 Hello,然后读取返回的数据……将返回的数据,输出到浏览器……

  先运行起java的服务端,然后用浏览器访问PHP页面,将看到从服务器端返回的Hello