php scocket实例

PHPABC PHP开发 919 次浏览 , 没有评论

window下,打开命令窗口,分别运行以下两行命令:

    # php.exe e:/wwwroot/server.php  
    # php.exe e:/wwwroot/server.php

以下代码来自php官方手册
server.php:

    <?php  
     //The Server  
     error_reporting(E_ALL);  
     $address = "127.0.0.1";  
     $port = "10000";  
 
 
    /* create a socket in the AF_INET family, using SOCK_STREAM for TCP connection */  
     $mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);  
 
    socket_bind($mysock, $address, $port);  
 
    socket_listen($mysock, 5);  
 
    $client = socket_accept($mysock);  
 
    echo "Server started, accepting connections...\n";  
 
 
    $i = 0;  
     while (true == true)  
     {  
         $i++;  
         echo "Sending $i to client.\n";  
         socket_write($client, $i, strlen($i));  
 
        $input = socket_read($client, 2048);  
         echo "Response from client is: $input\n";  
         sleep(5);  
     }  
 
    echo "Closing sockets...";  
     socket_close($client);  
 
    socket_close($mysock);

client.php

    <?php  
     //The Client  
     error_reporting(E_ALL);  
 
    $address = "127.0.0.1";  
     $port = 10000;  
 
    /* Create a TCP/IP socket. */  
     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);  
     if ($socket === false) {  
         echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";  
     } else {  
         echo "socket successfully created.\n";  
     }  
 
    echo "Attempting to connect to '$address' on port '$port'...";  
     $result = socket_connect($socket, $address, $port);  
     if ($result === false) {  
         echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";  
     } else {  
         echo "successfully connected to $address.\n";  
     }  
 
    $i = 0;  
     while (true == true)  
     {  
         $i++;  
         echo "Sending $i to server.\n";  
         socket_write($socket, $i, strlen($i));  
 
        $input = socket_read($socket, 2048);  
         echo "Response from server is: $input\n";  
         sleep(5);  
     }  
 
    echo "Closing socket...";  
     socket_close($socket);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go