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>";   
    ?>  

先运行server.php                   再运行client.php

你可能感兴趣的:(php socket)