Beispiel #1
0
 public function ready3()
 {
     while (true) {
         $msg = socket_accept($this->sock);
         // 接受一个SOCKET
         if (!$msg) {
             echo "socket_accept() failed:" . socket_strerror($msg) . "\n";
             break;
         }
         $dd = parent::read();
         socket_write($msg, $dd, strlen($dd));
         $dd = trim(socket_read($msg, 1024));
         ob_start();
         print "<pre>\r\n";
         print_r($dd);
         print "</pre>\r\n";
         $fp = fopen('zzzzzzzzzzzzzzzzzzzzzzzz.txt', 'wb');
         fwrite($fp, ob_get_contents());
         fclose($fp);
         ob_end_clean();
         $dd = unserialize($dd);
         $result = Watt_Sync_MessageListManage::createAllMsgList($dd, 'outside');
         if ($result == '1') {
             $writer = '1';
         } else {
             $writer = '0';
         }
         socket_write($msg, $writer, strlen($writer));
         socket_close($msg);
         $command = strtoupper("quit");
         if ($command == "QUIT") {
             break;
         }
     }
     parent::close();
 }
Beispiel #2
0
 /**
  * 被动输入接口	 
  * 
  * 功能:将数据写入到本地的序列文件或数据库。供本地tpm或主动输出接口调用
  * 
  * 参数:
  * 	$obj :db表明是对数据库操作,file表明是对序列文件操作,msgSqlValue表明是消息SQL的值
  *  $msgList:消息序列的内容(分解后的SQL)
  *  $msgSign:消息序列唯一标识
  *  $pwd:访问接口的密码
  * 返回值:成功返回真,失败返回假
  */
 public static function PassiveInput($obj, $msgList, $msgSign = '', $pwd = '', $msgListDir = '')
 {
     //访问权限判断
     if (!Watt_Sync_MessageListManage::interfaceAuth('PassiveInput')) {
         return false;
     }
     //验证密码
     if (!Watt_Sync_MessageListManage::passwordAuth($pwd)) {
         return false;
     }
     if ($obj == 'db') {
         //对数据库的操作
         return Watt_Sync_MessageListManage::executeMessageList($msgList);
     } else {
         if ($obj == 'file') {
             //对文件的操作
             if ($msgSign != '') {
                 if (is_array($msgSign) && count($msgSign)) {
                     if ($msgListDir == 'outside') {
                         //从unknown移动到outside
                         return Watt_Sync_MessageListManage::moveMsglistUnknown($msgSign);
                     }
                 } else {
                     return Watt_Sync_MessageListManage::createMsgList($msgList, $msgSign);
                 }
             } else {
                 return Watt_Sync_MessageListManage::createAllMsgList($msgList, $msgListDir);
             }
         } else {
             if ($obj == 'msgSqlValue') {
                 return Watt_Sync_MessageListManage::createMsgSqlValue($msgList, $msgSign);
             }
         }
     }
 }
Beispiel #3
0
 /**
  * 解析socket生成消息序列文件
  *
  * @return unknown
  */
 public static function execMsgListFile()
 {
     $config = self::_getConfig();
     //获取消息序列文件的存放地址
     $filename = $config['TpmMsgListDir'] . 'unknown/msgListfile.msg';
     $data = file_get_contents($filename);
     $data = unserialize(urldecode($data));
     if (is_array($data) && count($data)) {
         $msgSignArr = array_keys($data['msgList']);
         $result = Watt_Sync_MessageListManage::createAllMsgList($data['msgList'], $data['msgListDir']);
         if ($result == '1') {
             unlink($filename);
             //删除文件
             if (!is_file($filename)) {
                 //return '1';
                 return $msgSignArr;
             } else {
                 return '0';
             }
         } else {
             return '0';
         }
     }
 }