博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php与java通过socket通信demo
阅读量:2238 次
发布时间:2019-05-09

本文共 1451 字,大约阅读时间需要 4 分钟。

PHP通过socket与java进行通信与基本的sockent编程没什么区别,一个读,一个写,只是方便起见,用java写,PHP读。

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

 

 1 
import java.io.*;
 2 
import java.net.*;
 3  
 4 
public 
class Server {
 5 
public 
static 
void main(String[] args) 
throws IOException{
 6   System.out.println("Server started !\n");
 7   ServerSocket server=
new ServerSocket(5678);
 8   
while (
true){
 9                 Socket client=server.accept();
10                 System.out.println("client coming!\n");
11                 PrintWriter printer = 
new PrintWriter(client.getOutputStream());
12                 BufferedReader reader = 
new BufferedReader(
new InputStreamReader(client.getInputStream()));
13                 String  m = reader.readLine();
14                 System.out.println("get infomation " + m + "\n from " + client.getInetAddress().toString());
15                 printer.println(m);
16                 printer.flush();
17                 printer.close();
18                 printer.close();
19                 client.close();
20                 System.out.println("client leaving!\n");
21               }
22         }

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

 1 <?php
 2     
$socket = socket_create ( AF_INET, SOCK_STREAM, SOL_TCP ) or 
die ( 'could not create socket' );
 3     
$connect = socket_connect ( 
$socket, '127.0.0.1', 5678 );
 4     
//
向服务端发送数据
 5 
    socket_write ( 
$socket, 'Hello' . "\n" );
 6     
//
接受服务端返回数据
 7 
    
$str = socket_read ( 
$socket, 1024, PHP_NORMAL_READ );
 8      
 9     
echo 
$str;
10     
//
关闭
11 
    socket_close(
$socket);
12 ?>

 

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

 

原文来自: 

 

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

转载于:https://www.cnblogs.com/yimu/archive/2012/08/30/2663740.html

你可能感兴趣的文章
关于文件拷贝效率问题
查看>>
MyBatis分页插件PageHelper的使用
查看>>
【MyBatis学习01】宏观上把握MyBatis框架
查看>>
【MyBatis学习02】走进MyBatis的世界
查看>>
【MyBatis学习03】原始dao开发方法及其弊端
查看>>
【MyBatis学习04】mapper代理方法开发dao
查看>>
【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
查看>>
【MyBatis学习06】输入映射和输出映射
查看>>
【MyBatis学习07】动态sql
查看>>
【MyBatis学习08】高级映射之一对一查询
查看>>
【MyBatis学习09】高级映射之一对多查询
查看>>
【MyBatis学习10】高级映射之多对多查询
查看>>
【MyBatis学习11】MyBatis中的延迟加载
查看>>
【MyBatis学习12】MyBatis中的一级缓存
查看>>
【MyBatis学习13】MyBatis中的二级缓存
查看>>
【MyBatis学习14】MyBatis和Spring整合
查看>>
【MyBatis学习15】MyBatis的逆向工程生成代码
查看>>
Java 中 final、finally 和 finalize 使用总结
查看>>
volatile关键字解析
查看>>
单例模式的八种写法比较
查看>>