Home php教程 php手册 [PHP] PHP request Socket interface test

[PHP] PHP request Socket interface test

Aug 04, 2016 am 08:53 AM

Use php to read the data of the socket interface, pass the request method and request parameters through php, and get the return result

PHP file:

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Test{
    </span><span style="color: #0000ff;">const</span> IP='127.0.0.1'<span style="color: #000000;">;
    </span><span style="color: #0000ff;">const</span> port=10003<span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> main(){
        </span><span style="color: #008080;">header</span>("Content-type:text/html;Charset=UTF-8"<span style="color: #000000;">);
        </span><span style="color: #800080;">$socket</span>=<span style="color: #0000ff;">new</span><span style="color: #000000;"> Test();
        </span><span style="color: #800080;">$result</span>=<span style="color: #800080;">$socket</span>->connSocket("getmaillist\r\n{'id':2}\r\n"<span style="color: #000000;">);
        </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$result</span><span style="color: #000000;">;
    }
    </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> connSocket(<span style="color: #800080;">$str</span><span style="color: #000000;">){
        </span><span style="color: #800080;">$socket</span> = socket_create(AF_INET,SOCK_STREAM,<span style="color: #000000;">SOL_TCP);
        </span><span style="color: #800080;">$res</span>=@socket_connect(<span style="color: #800080;">$socket</span>,self::IP,self::<span style="color: #000000;">port);
        </span><span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$res</span><span style="color: #000000;">){
            </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
        }
        socket_write(</span><span style="color: #800080;">$socket</span>,<span style="color: #800080;">$str</span><span style="color: #000000;">);
        </span><span style="color: #800080;">$result</span>=""<span style="color: #000000;">;
        </span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$data</span> = socket_read(<span style="color: #800080;">$socket</span>,1024<span style="color: #000000;">)){
            </span><span style="color: #800080;">$result</span>.=<span style="color: #800080;">$data</span><span style="color: #000000;">;
        }
        socket_close(</span><span style="color: #800080;">$socket</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$result</span><span style="color: #000000;">;
    }
}
Test</span>::main();
Copy after login

Java Socket server:

<span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.InputStream;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.PrintWriter;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.ServerSocket;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.Socket;

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Test {
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception {
        ServerSocket serverSocket </span>= <span style="color: #0000ff;">new</span> ServerSocket(10003<span style="color: #000000;">);

        </span><span style="color: #0000ff;">while</span> (<span style="color: #0000ff;">true</span><span style="color: #000000;">) {
            Socket socket </span>=<span style="color: #000000;"> serverSocket.accept();

            InputStream is </span>=<span style="color: #000000;"> socket.getInputStream();
            </span><span style="color: #0000ff;">byte</span>[] b = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024<span style="color: #000000;">];
            </span><span style="color: #0000ff;">int</span> len =<span style="color: #000000;"> is.read(b);
            String inputString </span>= <span style="color: #0000ff;">new</span> String(b, 0<span style="color: #000000;">, len);
            PrintWriter pw</span>=<span style="color: #0000ff;">new</span> PrintWriter(socket.getOutputStream(),<span style="color: #0000ff;">true</span><span style="color: #000000;">);
            String result</span>=""<span style="color: #000000;">;
            
            </span><span style="color: #008000;">//</span><span style="color: #008000;">处理发来的数据</span>
            <span style="color: #0000ff;">if</span>(inputString.contains("\r\n"<span style="color: #000000;">)){
                String[] params</span>=inputString.split("\r\n"<span style="color: #000000;">);
                </span><span style="color: #0000ff;">if</span>(params[0].equals("getmaillist"<span style="color: #000000;">)){
                    String maillist</span>=<span style="color: #000000;">getmaillist();
                    result</span>="请求方法:"+params[0]+",请求参数:"+params[1]+",请求结果:"+<span style="color: #000000;">maillist;
                }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{
                    result</span>="非法参数2"<span style="color: #000000;">;
                }
            }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{
                result</span>="非法参数1"<span style="color: #000000;">;
            }
            
            pw.println(result);
            socket.close();
        }
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> String getmaillist(){
        </span><span style="color: #0000ff;">return</span> "中国上海/2015年7月28日——服务于中国及全球华人社群的领先在线媒体公司新浪公司(Nasdaq GS: SINA)定于美国当地时间2016年8月8日周一股市收盘后公布截至2016年6月30日的2016第二季度未经审计的财务报告。随后,新浪管理团队将于美国东部时间晚10点10分召开电话会议,通报公司的财务和经营状况。"<span style="color: #000000;">;
    }
}</span>
Copy after login

Effect:

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1254
24