[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/r/n{'id':2}/r/n"); 
        echo $result; 
    } 
    private function connSocket($str){ 
        $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); 
        $res[email protected]_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] PHP请求Socket接口测试详解编程语言

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12597.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论