前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[PHP] PHP请求Socket接口测试

[PHP] PHP请求Socket接口测试

作者头像
唯一Chat
发布2019-09-10 16:38:33
2.6K0
发布2019-09-10 16:38:33
举报
文章被收录于专栏:陶士涵的菜地

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

PHP文件:

代码语言:javascript
复制
<?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服务端:

代码语言:javascript
复制
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分召开电话会议,通报公司的财务和经营状况。";
    }
}

效果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档