ホームページ  >  記事  >  バックエンド開発  >  PHPソケットプログラミング!

PHPソケットプログラミング!

WBOY
WBOYオリジナル
2016-06-23 14:34:30701ブラウズ

SERVER.PHP

コード

                      <p class="sycode">                          <?      php      //      确保在连接客户端时不会超时            set_time_limit      (      0      );      //      设置IP和端口号            $address      =      服务器自己的IP;      $port      =      端口号;      //      创建一个SOCKET            if      ((      $sock      =      socket_create(AF_INET      ,      SOCK_STREAM      ,      SOL_TCP))      <      0      ){       echo             "      socket_create() 失败的原因是:      "      .      socket_strerror(      $sock      )      .      "      <br>      "      ;}      //      绑定到socket端口            if      ((      $ret      =      socket_bind(      $sock      ,      $address      ,      $port      ))      <      0      ){       echo             "      socket_bind() 失败的原因是:      "      .      socket_strerror(      $ret      )      .      "      <br>      "      ;}      //      开始监听            if      ((      $ret      =      socket_listen(      $sock      ,      4      ))      <      0      ){       echo             "      socket_listen() 失败的原因是:      "      .      socket_strerror(      $ret      )      .      "      <br>      "      ;}      do       {       if       ((      $msgsock             =       socket_accept(      $sock      ))       <             0      ) {       echo             "      socket_accept() failed: reason:       "             .       socket_strerror(      $msgsock      )       .             "      \n      "      ;       break      ; }       //      发到客户端                   $msg             =      "      <font color=red>服务器端发送:欢迎进入服务器!</font><br>      "      ; socket_write(      $msgsock      ,             $msg      ,             strlen      (      $msg      ));       echo             "      读取客户端发来的信息<br>      "      ;       $buf      =      socket_read(      $msgsock      ,      8192      );        $talkback             =             "      收到的信息      $buf      <br>      "      ;       echo             $talkback      ;       if      (socket_write(      $msgsock      ,             $talkback      ,             strlen      (      $talkback      ))      <      0      ) {       echo             "      socket_write() failed: reason:       "             .       socket_strerror(      $msgsock      )       .             "      \n      "      ; }       else       {       echo             "      发送成功      "      ; }        echo             $buf      ; socket_close(      $msgsock      ); }       while       (      true      ); socket_close(      $sock      );      ?>                             </p>

CLIENT.PHP

コード

                      <p class="sycode">                          <?      php      error_reporting      (      E_ALL      );      set_time_limit      (      0      );      echo             "      <h2>TCP/IP Connection</h2>\n      "      ;      $service_port             =       服务器端口;      $address             =             "      服务器IP      "      ;      $socket             =       socket_create(AF_INET      ,       SOCK_STREAM      ,       SOL_TCP);      if       (      $socket             <             0      ){       echo             "      socket_create() failed: reason:       "             .       socket_strerror(      $socket      )       .             "      \n      "      ;}      else      {       echo             "      OK.\n      "      ;}      echo             "      试图连接 '      $address      ' 端口 '      $service_port      '...<br>      "      ;      $result             =       socket_connect(      $socket      ,             $address      ,             $service_port      );      if       (      $result             <             0      ) {       echo             "      socket_connect() failed.\nReason: (      $result      )       "             .       socket_strerror(      $result      )       .             "      \n      "      ; }       else       {       echo             "      连接OK<br>      "      ; }      $in             =             "      发送到服务器的信息\r\n      "      ;      $in             .=             "      也是发到服务器的\r\n      "      ;      $out             =             ''      ;      $out1      =      ''      ;       if      (      !      socket_write(      $socket      ,             $in      ,             strlen      (      $in      ))) {       echo             "      socket_write() failed: reason:       "             .       socket_strerror(      $socket      )       .             "      \n      "      ; }       else       {       echo             "      发送到服务器信息成功!<br>      "      ; }       while      (      $out             =       socket_read(      $socket      ,             8192      )) {       echo             "      接收服务器回传信息成功!<br>      "      ;       echo             $out      ; }       echo             "      关闭SOCKET...<br>      "      ; socket_close(      $socket      );       echo             "      关闭OK<br>      "      ;      ?>                             </p>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPプログラマー次の記事:PHPプログラマー