wangyongdong
9/19/2019 - 7:04 AM

请用php写出以下程序:假设网络中有一台服务器192.168.1.101,开放端口8899进行侦听,请用php的socket相关知识,写出一个简易的client,连接到server,并发送字符串”hello server!”。程序仅对连接的成功和失败进行简易错误判断和处理即可。

/**
 * 请用php写出以下程序:假设网络中有一台服务器192.168.1.101,开放端口8899进行侦听,请用php的socket相关知识,写出一个简易的client,连接到server,并发送字符串”hello server!”。程序仅对连接的成功和失败进行简易错误判断和处理即可。
 */
echo '<hr/>';
socketSend('127.0.0.1', '80', 'hello word');
function socketSend($ip, $port, $message = 'socket request') {
    // 创建 socket
    $socket = socket_create(AF_INET, SOCK_STREAM, 0);
    if(!$socket) {
        $error['error_code'] = socket_last_error();
        $error['error_msg'] = socket_strerror($error['error_code']);
        var_dump($error);die();
    }

    // socket 连接
    $connect = socket_connect($socket, $ip, $port);
    if(!$connect) {
        $error['error_code'] = socket_last_error();
        $error['error_msg'] = socket_strerror($error['error_code']);
        var_dump($error);die();
    }

    // 发送数据
    $result = socket_send($socket, $message, strlen($message), 0);
    if(!$result) {
        $error['error_code'] = socket_last_error();
        $error['error_msg'] = socket_strerror($error['error_code']);
        var_dump($error);die();
    }

    // 关闭socket
    socket_close($socket);
}