注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

前端开发那点事儿

冒犯之处,敬请谅解。

 
 
 

日志

 
 
 
 

PHP SOCKET发送/接受数据  

2012-07-16 14:42:09|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//通过SOCKET获取信息
function getInfoBySocket($command,$multi = false){
 //通过SOCKET发送消息,并处理数据,数据以$结束
    
    set_time_limit(15);

    $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) or die ('SOCKET创建失败!');
    
    socket_sendto($socket, $command, strlen($command), 0x100, '127.0.0.1', 20004)
    or die ('SOCKET发送失败!');
    
    if($multi){
        $data = array();
        
        $i = 0;
        
        while(!$data || substr($data[count($data)-1],(strlen($data[count($data)-1])-1),1) !== '$'){
            if($i == 10){
                break;
            }
            sleep(1);
            $readData = socket_read($socket, 2048);
            
            if($readData === 'ERROR'){
                return 'ERROR';
            }
            if($readData !== false){
                $data[] = $readData;
            }
            $i++;
        }
//        if($data){
//            echo '共接受到' . count($data) . '条返回信息!<br /><br />';
//            echo '<pre>接收到的数据如下:<br />';
//            var_export($data);
//        }
        socket_close($socket);
        return implode('-',$data);
    }else{
        $data = '';
        
        $readData = socket_read($socket, 2048);
        if($readData === 'ERROR'){
            socket_close($socket);
            return 'ERROR';
        }
         if($readData === false){
            socket_close($socket);
            return $data;
         }
         $data = $readData;
         socket_close($socket);
         return $data;
    }
}

//通过SOCKET发送信息
function setInfoBySocket($command,$ip='127.0.0.1'){
 //通过SOCKET发送消息,并处理数据,数据以$结束
    set_time_limit(15);
    $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    if(!$socket){
        socket_close($socket);
        return 'SOCKET创建失败!';
    }
    
    if(!socket_sendto($socket, $command, strlen($command), 0x100, $ip, 20004)){
        socket_close($socket);
        return 'SOCKET发送失败!';
    }
    
    socket_close($socket);
    return true;
}
  评论这张
 
阅读(2266)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017