zoukankan      html  css  js  c++  java
  • PHP socket网络编程

    SERVER端

    <?php
    //确保在连接客户端时不会超时
    set_time_limit (0 );

    //设置IP和端口号
    $address='127.0.0.1' ;
    $port=2009 ;    //调试的时候,可以多换端口来测试程序!

    //创建一个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 );
    ?>




    CLIENT端


    <?php
    error_reporting (E_ALL );
    set_time_limit (0 );
    echo"<h2>TCP/IP Connection</h2>\n" ;

    $service_port=2009 ;
    $address="127.0.0.1" ;


    $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="Hello\r\n" ;
    $in.="我是Chester\r\n" ;
    $out='' ;
    $out1='' ;


    if (!socket_write ($socket,$in,strlen ($in )))
    {
    echo"socket_write() failed: reason: ".socket_strerror ($socket ) ."\n" ;
    }
    else
    {
    echo"发送到服务器信息成功!<br>" ;
    echo"发送的内容为:<font color='red'>$in</font> <br>" ;
    }

    while ($out=socket_read ($socket,8192 ))
    {
    echo"接收服务器回传信息成功!<br>" ;
    echo"接受的内容为:",$out ;
    }


    echo"关闭SOCKET...<br>" ;
    socket_close ($socket );
    echo"关闭OK<br>" ;
    ?>

  • 相关阅读:
    Linux 下用 Python 连接 MSSql Server 2008
    这周我加星(4)
    几个受益终身的英文缩写
    这周我加星(1)
    证据
    这周我加星(3)
    代友招人────3D 客户端程序员
    人在广州,力撑陈 Sir
    谁不会成为 Linux(ubuntu)的用户
    这周我加星(5)
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429568.html
Copyright © 2011-2022 走看看