php的套接字连接代码

Dip*_*Dam 1 php sockets

我正在编写一个简单的php套接字代码.
这是我的代码

 <?php

    $address="127.0.0.1";
    $port=9875;
    echo "I am here";

    if(false==($socket=  socket_create(AF_INET,SOCK_STREAM, SOL_TCP)))
    {
        echo "could not create socket";
    }
    socket_bind($socket, $address, $port) or die ("could not bind socket");
    socket_listen($socket);
    if(($client=socket_accept($socket)))
        echo "client is here";

    ?>
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我的浏览器只显示等待localhost.
我的代码有问题吗?
我正在使用xammp 1.7.4.
如果我想获得HTTP或FTP请求,我想知道另一件事我是否只更改了端口号?

Aja*_*ayR 6

我验证了代码并在我的系统中进行了测试,它运行正常.在运行客户端后显示为"客户端在这里".

文件名:server.php

<?php
    $address="127.0.0.1";
    $port=9875;
    echo "I am here";
    set_time_limit (0); 
    if(false==($socket=  socket_create(AF_INET,SOCK_STREAM, SOL_TCP)))
    {
        echo "could not create socket";
    }
    socket_bind($socket, $address, $port) or die ("could not bind socket");
    socket_listen($socket);
    if(($client=socket_accept($socket)))
        echo "client is here";

    socket_close($socket); 
    ?>
Run Code Online (Sandbox Code Playgroud)

首先运行server.php文件.

文件:client.php

<?php
$host="127.0.0.1" ;
$port=9875;
$timeout=30;
$sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ;
if (!is_resource($sk)) {
    exit("connection fail: ".$errnum." ".$errstr) ;
} else {

    echo "Connected";
    }
?>
Run Code Online (Sandbox Code Playgroud)

现在运行client.php

你的输出应该是这样的(因为我在我的系统中)

我在这里客户就在这里

如果没有,请确保您的防火墙没有阻止该请求.如果您有防病毒软件,请暂时禁用防病毒软件.