PHP請(qǐng)求Socket接口測(cè)試實(shí)例

字號(hào):


    使用php讀取socket接口的數(shù)據(jù),通過(guò)php傳遞請(qǐng)求方法和請(qǐng)求參數(shù),得到返回結(jié)果
    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服務(wù)端:
    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="";
          //處理發(fā)來(lái)的數(shù)據(jù)
          if(inputString.contains("\r\n")){
            String[] params=inputString.split("\r\n");
            if(params[0].equals("getmaillist")){
              String maillist=getmaillist();
              result="請(qǐng)求方法:"+params[0]+",請(qǐng)求參數(shù):"+params[1]+",請(qǐng)求結(jié)果:"+maillist;
            }else{
              result="非法參數(shù)2";
            }
          }else{
            result="非法參數(shù)1";
          }
          pw.println(result);
          socket.close();
        }
      }
      public static String getmaillist(){
        return "中國(guó)上海/2015年7月28日——服務(wù)于中國(guó)及全球華人社群的領(lǐng)先在線媒體公司新浪公司(Nasdaq GS: SINA)定于美國(guó)當(dāng)?shù)貢r(shí)間2016年8月8日周一股市收盤(pán)后公布截至2016年6月30日的2016第二季度未經(jīng)審計(jì)的財(cái)務(wù)報(bào)告。隨后,新浪管理團(tuán)隊(duì)將于美國(guó)東部時(shí)間晚10點(diǎn)10分召開(kāi)電話會(huì)議,通報(bào)公司的財(cái)務(wù)和經(jīng)營(yíng)狀況。";
      }
    }
    以上這篇PHP請(qǐng)求Socket接口測(cè)試實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考