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

    效果:

  • 相关阅读:
    玩转Visual Studio Editor篇
    .Net2.0的集合操作 What i know?
    Log文件压缩
    [转]比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
    Stream 和 Byte[]互操作
    net 2.0 中如何在线程引发的事件中控制forms controls
    C# 操作Word文档(转)
    利用Lucene.net搜索引擎进行多条件搜索的做法
    c# 添加图片水印,可以指定水印位置+生成缩略图
    SDN第一次作业
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5727639.html
Copyright © 2011-2022 走看看