zoukankan      html  css  js  c++  java
  • PHP stream_socket_server

    stream_socket_server - 创建一个Internet或Unix域服务器套接字

    描述

    资源stream_socket_server(字符串local_socket [摘要和错误号[,串errstr [摘要标志[,资源环境]]]])

    创建指定流或数据报套接字 local_socket。:该类型创建由运输决定的插座的使用标准URL格式指定 运输://目标。对于Internet域套接字(AF_INET),如TCP和UDP,该目标的一部分remote_socket参数应该由一个主机名或IP地址,后跟一个冒号和一个端口号。对于Unix域套接字,该目标部分应指向文件系统上的套接字文件。 标志是可被设置为套接字创建标记的任何组合的位掩码字段。标志的默认值为 STREAM_SERVER_BIND | STREAM_SERVER_LISTEN

    注: 对于UDP套接字,必须使用STREAM_SERVER_BIND作为标志参数。

    此功能仅创建一个套接字,开始接受连接使用stream_socket_accept() 

    如果调用失败,它将返回FALSE,如果可选 的errnoerrstr 参数是目前他们将被设置为表明发生在系统级实际的系统级错误 插座() bind()的,和 听()调用。如果返回值 错误号0和该函数返回FALSE,那就是前发生的错误指示bind()的调用。这很可能是由于在初始化插座的问题。请注意,错误号和 errstr参数将始终通过引用传递。

    根据环境的不同,Unix域套接字可能无法使用。可用传输列表可以使用检索 stream_get_transports() 。见 附录Ñ为bulitin传输的列表。

    例子 1. Using TCP server sockets

     1 <?php
     2 $socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
     3 if (!$socket) {
     4   echo "$errstr ($errno)<br />
    ";
     5 } else {
     6   while ($conn = stream_socket_accept($socket)) {
     7     fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "
    ");
     8     fclose($conn);
     9   }
    10   fclose($socket);
    11 }
    12 ?>

    下面的例子演示了如何作为,可以如图为例对时间响应查询的时间服务器在stream_socket_client() 

    注: 大多数系统需要root权限以低于1024的端口上创建服务器套接字。

    例子 2.

     1 <?php
     2 $socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
     3 if (!$socket) {
     4     die("$errstr ($errno)");
     5 }
     6 
     7 do {
     8     $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
     9     echo "$peer
    ";
    10     stream_socket_sendto($socket, date("D M j H:i:s Y
    "), 0, $peer);
    11 } while ($pkt !== false);
    12 
    13 ?>

    注: 当指定数字的 IPv6 地址(例如 fe80::1)时必须将 IP 地址放在方括号内。例如 tcp://[fe80::1]:80

    也参见在stream_socket_client() , stream_set_blocking() , stream_set_timeout() , 与fgets() , fgetss() fwrite()将, FCLOSE() 的feof() ,和卷曲延伸

     
  • 相关阅读:
    Vue 获取dom元素中的自定义属性值
    php文件包含
    php数组运算符
    管理一组事物的状态
    php数据类型转换
    php函数
    PHP循环while do while循环
    php的流程控制 if elseif swich case for循环
    php的工作原理
    python算数、逻辑运算,位运算
  • 原文地址:https://www.cnblogs.com/setevn/p/8598355.html
Copyright © 2011-2022 走看看