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(); }
/** * 被动输入接口 * * 功能:将数据写入到本地的序列文件或数据库。供本地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); } } } }
/** * 解析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'; } } }