zoukankan      html  css  js  c++  java
  • [PHP] PHP请求Socket接口测试

    使用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
    {'id':2}
    ");
            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("
    ")){
                    String[] params=inputString.split("
    ");
                    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分召开电话会议,通报公司的财务和经营状况。";
        }
    }

    效果:

  • 相关阅读:
    DGbroker三种保护模式的切换
    oracle11G使用DGbroker创建dg
    oracle数据泵示例
    oracle DB_LINK
    oracle数据库rman备份计划及恢复
    oracle查看对象信息
    mybatis学习:mybatis的注解开发和编写dao实现类的方式入门
    mybatis学习:mybatis的环境搭建与入门
    mybatis框架学习:
    入门servlet:request请求转发和共享数据
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5727639.html
Copyright © 2011-2022 走看看