首页 > php开发 > php利用stream_socket_server与stream_socket_client

php利用stream_socket_server与stream_socket_client

<?php
//以上php为服务端,它将监听消息,直到按下:ctrl+c 
while (true) {
    //每5秒执行一次
    receive_message('127.0.0.1', '85', 5);
}
//自定义函数用于获取消息
function receive_message($ipserver, $portnumber, $nbsecondsidle) {
    //创建socket
    $socket = stream_socket_server('tcp://' . $ipserver . ':' . $portnumber, $errno, $errstr);
    if (!$socket) {
        //如果创建socket失败输出内容
        echo "$errstr ($errno)<br />n";
    } else {
        //如果创建成功则接受socket连接并获取信息
        while ($conn = @stream_socket_accept($socket, $nbsecondsidle)) {
            $message = read($conn, 1024);
            echo 'i have received that : ' . $message;
            fputs($conn, "okn");
            fclose($conn);
        }
        fclose($socket);
    }
}
//server结束
?>
<?php
//以下代码为客户端,它将发送信息并读取回复
send_message('127.0.0.1', '85', 'message to send...');
//自定义函数,发送信息
function send_message($ipserver, $portserver, $message) {
    $fp = stream_socket_client("tcp://$ipserver:$portserver", $errno, $errstr);
    if (!$fp) {
        echo "erreur : $errno - $errstr<br />n";
    } else {
        fwrite($fp, "$messagen");
        $response = fread($fp, 4);
        if ($response != "okn") {
            echo 'the command couldn\'t be executed...ncause :' . $response;
        } else {
            echo 'execution successfull...';
        }
        fclose($fp);
    }
}


教程网址:http://www.phprm.com/develop/fs4239.html

欢迎收藏∩_∩但请保留本文链接。

标签:stream_socket_server

发表留言