PHP SOCKET编程!

WBOY
Release: 2016-06-23 14:34:30
Original
708 people have browsed it

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>
Copy after login

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>
Copy after login

 

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template