使用php读取socket接口的数据,通过php传递请求方法和请求参数,得到返回结果
PHP文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?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();
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服务端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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请求Socket接口测试实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。