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