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 的几个配置文件函数
Dec 21 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
php下把数组保存为文件格式的实例应用
Feb 08 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
PHP实现的简单缓存类
Jul 29 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
PHP session 会话处理函数
2016/06/06 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
Python 除法小技巧
2008/09/06 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
Python函数基本使用原理详解
2020/03/19 Python
python 爬虫请求模块requests详解
2020/12/04 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
Collection和Collections的区别
2016/05/02 面试题
几道数据库的概念性面试题
2014/05/30 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
大班下学期个人总结
2015/02/13 职场文书
2016国庆促销广告语
2016/01/28 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python