使用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接口测试实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。