PHP请求Socket接口测试实例


Posted in PHP onAugust 12, 2016

使用php读取socket接口的数据,通过php传递请求方法和请求参数,得到返回结果

PHP文件:

<?php
class Test{
  const IP='127.0.0.1';
  const port=10003;
  public static function main(){
    header("Content-type:text/html;Charset=UTF-8");
    $socket=new Test();
    $result=$socket->connSocket("getmaillist\r\n{'id':2}\r\n");
    echo $result;
  }
  private function connSocket($str){
    $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
    $res=@socket_connect($socket,self::IP,self::port);
    if(!$res){
      return;
    }
    socket_write($socket,$str);
    $result="";
    while($data = socket_read($socket,1024)){
      $result.=$data;
    }
    socket_close($socket);
    return $result;
  }
}
Test::main();

Java的Socket服务端:

import java.io.InputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Test {
  public static void main(String[] args) throws Exception {
    ServerSocket serverSocket = new ServerSocket(10003);

    while (true) {
      Socket socket = serverSocket.accept();

      InputStream is = socket.getInputStream();
      byte[] b = new byte[1024];
      int len = is.read(b);
      String inputString = new String(b, 0, len);
      PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);
      String result="";
      
      //处理发来的数据
      if(inputString.contains("\r\n")){
        String[] params=inputString.split("\r\n");
        if(params[0].equals("getmaillist")){
          String maillist=getmaillist();
          result="请求方法:"+params[0]+",请求参数:"+params[1]+",请求结果:"+maillist;
        }else{
          result="非法参数2";
        }
      }else{
        result="非法参数1";
      }
      
      pw.println(result);
      socket.close();
    }
  }
  public static String getmaillist(){
    return "中国上海/2015年7月28日——服务于中国及全球华人社群的领先在线媒体公司新浪公司(Nasdaq GS: SINA)定于美国当地时间2016年8月8日周一股市收盘后公布截至2016年6月30日的2016第二季度未经审计的财务报告。随后,新浪管理团队将于美国东部时间晚10点10分召开电话会议,通报公司的财务和经营状况。";
  }
}

效果:

PHP请求Socket接口测试实例

以上这篇PHP请求Socket接口测试实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在 PHP 中使用随机数的三个步骤
Oct 09 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php反射应用示例
Feb 25 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
PHP socket 模拟POST 请求实例代码
Jul 18 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 #PHP
php网页版聊天软件实现代码
Aug 12 #PHP
PHP 自动加载的简单实现(推荐)
Aug 12 #PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 #PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 #PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 #PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 #PHP
You might like
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
PHP内核探索:变量概述
2014/01/30 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php操作access数据库的方法详解
2017/02/22 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
js常用代码段整理
2011/11/30 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
Python中functools模块的常用函数解析
2016/06/30 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
会计专业毕业生自我鉴定
2013/10/29 职场文书
党员志愿者活动总结
2014/06/26 职场文书
教师党员个人自我评价
2015/03/04 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
python numpy中setdiff1d的用法说明
2021/04/22 Python