PHP請(qǐng)求Socket接口測(cè)試實(shí)例
使用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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Laravel 實(shí)現(xiàn)在Blade模版中使用全局變量代替路徑的例子
今天小編就為大家分享一篇Laravel 實(shí)現(xiàn)在Blade模版中使用全局變量代替路徑的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10mysql alter table命令修改表結(jié)構(gòu)實(shí)例詳解
這篇文章主要介紹了mysql alter table命令修改表結(jié)構(gòu)實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-09-09使用symfony命令創(chuàng)建項(xiàng)目的方法
這篇文章主要介紹了使用symfony命令創(chuàng)建項(xiàng)目的方法,結(jié)合實(shí)例形式分析了Symfony命令的使用方法與項(xiàng)目創(chuàng)建的相關(guān)技巧,需要的朋友可以參考下2016-03-03ThinkPHP中Widget擴(kuò)展的兩種寫(xiě)法及調(diào)用方法詳解
這篇文章主要介紹了ThinkPHP中Widget擴(kuò)展的兩種寫(xiě)法及調(diào)用方法,詳細(xì)分析了Widget擴(kuò)展的寫(xiě)法及相應(yīng)的調(diào)用技巧,需要的朋友可以參考下2017-05-05詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法
本篇文章主要介紹了詳解Yii2高級(jí)版引入bootstrap.js的一個(gè)辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03