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之PHP语法学习笔记1
Dec 17 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
jQuery Mobile + PHP实现文件上传
Dec 12 PHP
php 使用array函数实现分页
Feb 13 PHP
php反射类ReflectionClass用法分析
May 12 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
php简单处理XML数据的方法示例
May 19 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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
php a simple smtp class
2007/11/26 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php实现可运算的验证码
2015/11/10 PHP
php微信开发之百度天气预报
2016/11/18 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
js读取配置文件自写
2014/02/11 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
Python聚类算法之DBSACN实例分析
2015/11/20 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
2014年消防工作实施方案
2014/02/20 职场文书
学生会部长竞聘书
2014/03/31 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
物理学专业自荐信
2014/06/11 职场文书
植树节口号
2014/06/21 职场文书
承诺书模板
2014/08/30 职场文书
党建工作汇报材料
2014/12/24 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
如何写好竞聘报告
2019/04/03 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
MySQL创建管理子分区
2022/04/13 MySQL