Php - 使用pthreads的socket_read

时间:2016-11-17 07:04:32

标签: php sockets tcp pthreads

我知道socket和线程在php中很糟糕...我只是想把我的php文件和socket连接到我的服务器上。 问题是我从socket_read得到什么(没有数据没有错误只返回一个空字符串)我认为pthread自动杀死套接字。 现在我不需要线程,但我需要保留它以便以后使用它。

我的代码:

<?php

class test extends Threaded
{
    /*

    */
    public function         __construct($ip, $port, $debug = false)
    {
        $this->debug = $debug;
        $this->ip = $ip;
        $this->port = $port;
    }

    /*

    */
    public function         __destruct()
    {
        socket_close($this->connect);
    }

    /*

    */
    public function         start()
    {

        if (!($this->connect = socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
            throw new Exception('SOCKET_CREATE');
        }

        if (!socket_set_option($this->connect, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 5, 'usec' => 0))) {
            throw new Exception('SOCKET_SET_OPTION');
        }

        if (!socket_connect($this->connect, $this->ip, $this->port)) {
            throw new Exception('SOCKET_CONNECT');
        }

        $getMsg = socket_read($this->connect, 255);
        echo $getMsg;
    }

}

你知道它是如何起作用的吗?

编辑:我今天再次尝试,我的脚本有效,我不明白有时候它的工作时间不行.... EDIT2:我将我的服务器文件脚本复制到另一台具有更多流量的服务器,它可以工作!那么为什么它在服务器2上运行而不在服务器1上运行?

0 个答案:

没有答案