解决方案 »

  1.   

       private $serverConf = array('host' => '10.130.xxx.xxx', 'port' => 8887);
         /**
         * 请求服务器的后台服务
         */
        private function request($reqBuffer)
        {        $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
            //设置发送数据超时时间
            socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 0, "usec" => 500000));
            //设置接收数据超时时间
            socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 0, "usec" => 500000));        if (socket_connect($socket, $this->serverConf['host'], $this->serverConf['port']) === false) {
                socket_close($socket);            throw new Exception('connect server error', socket_last_error());
            }        if (socket_write($socket, $reqBuffer, strlen($reqBuffer)) === false) {
                socket_close($socket);
                throw new Exception('send request error', socket_last_error());
            }
            if (($rspBuffer = socket_read($socket, 65536)) === false) {
                socket_close($socket);
                throw new Exception('receive response error', socket_last_error());        }        socket_close($socket);        return $rspBuffer;    }
    你可以参考一下
    https://github.com/Himer/protobuf_communicateC++服务层和PHP接入层通讯用UDP  封装可以用pack封装 也可以用protobuf进行封装