太原工程建设招投标信息网站WordPress调用发邮件

web/2025/9/26 14:49:10/文章来源:
太原工程建设招投标信息网站,WordPress调用发邮件,网站右下角调用优酷视频广告代码,郑州网站关键这恍恍的天日晒的大地嗞嗞的作响。这湉湉的阴雨下的祖国母亲到处洪水泛滥。人本不该有三六九等#xff0c;可这丑陋的阴雨竟然选择性的泄洪到无辜的县区以示人却有三六九等。谁的财产不是财产#xff0c;谁的生命不是生命#xff1f;谁特妈的不是母亲养大的#xff1f; 一首…这恍恍的天日晒的大地嗞嗞的作响。这湉湉的阴雨下的祖国母亲到处洪水泛滥。人本不该有三六九等可这丑陋的阴雨竟然选择性的泄洪到无辜的县区以示人却有三六九等。谁的财产不是财产谁的生命不是生命谁特妈的不是母亲养大的 一首罗刹海市单曲循环了一周了这调调听的真特么的解恨。与其说是骂娱乐圈的那些营营狗狗可你我为啥不将其骂的范围再上升一个层次呢他到底在骂批判谁或者哪个阶级呢越听越上头越听越觉的骂的很舒服。大抵我等屁民也就这点快感了吧其他的岂敢声张呢 恬不知耻却还能后勇一个屁十字会月薪几十万等这都是什么蝇狗还来呼吁募捐那些年还有些做善事让自己内心温暖的想法或者是举动为的是陶冶自己的情操艹陶冶个驴鸡把生我的和我生的通过自己的努力养好不香吗 刹车 最近因为IM中信令数据过大导致网络层传输数据过大的问题进行了优化原本3M的数据压缩后以400多KB进行传输这也很香当然数据量越大效率越高来吧马户直接吃鸡 头文件实现[内存数据解压缩你可以二次改造为文件目录解压缩] // // NSZip.h // // Created by carbonzhao on 2023/8/1. //#import Foundation/Foundation.h #import zlib.hNS_ASSUME_NONNULL_BEGIN//此类主要为内存压缩非文件目录解压缩。可进行稍微改造实现指定目录文件gzip解压缩此处不实现。 interface NSZip : NSObject(id)zip;//将指定的data进行gzip压缩。若需要进行Zip或者其他类型的压缩请调整deflateInit2函数第4个参数值。 - (NSData *)zip:(NSData *)data error:(NSError **)err;//将指定的数据进行gzip解压缩。 - (NSData *)unZip:(Bytef *)bytes length:(NSUInteger)length error:(NSError **)err;(NSData *)unZip:(NSData*)data error:(NSError **)err;//指定sourcePath目录的gzip压缩包解压到destinationPath指定的目录中。用于文件解压缩。(BOOL)unZip:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err; endNS_ASSUME_NONNULL_END.m文件实现 // // NSZip.m // // Created by carbonzhao on 2023/8/1. //#import NSZip.h #define DATA_CHUNK_SIZE 262144interface NSZip () {BOOL zipReady;z_stream zStream; }property (atomic, assign, readonly) BOOL zipReady; endimplementation NSZipsynthesize zipReady; (id)zip {NSZip *zip [[NSZip alloc] init];[zip resetZip];return zip; }- (void)dealloc {if (zipReady){[self closeZip];} }- (NSError *)resetZip {if (zipReady){return nil;}// Setup the inflate streamzStream.zalloc Z_NULL;zStream.zfree Z_NULL;zStream.opaque Z_NULL;zStream.avail_in 0;zStream.next_in 0;int status inflateInit2(zStream, (1532));if (status ! Z_OK){return [[self class] inflateErrorWithCode:status];}zipReady YES;return nil; }- (NSError *)closeZip {if (!zipReady){return nil;}// Close the inflate streamzipReady NO;int status inflateEnd(zStream);if (status ! Z_OK){return [[self class] inflateErrorWithCode:status];}return nil; }- (NSData *)zip:(NSData *)data error:(NSError **)err {if (data data.length 0){zStream.next_in (Bytef *) data.bytes;zStream.avail_in (uInt) data.length;zStream.total_out 0;OSStatus status deflateInit2(zStream,Z_DEFAULT_COMPRESSION,Z_DEFLATED, MAX_WBITS16,MAX_MEM_LEVEL,Z_DEFAULT_STRATEGY); /* 历史缓冲区最大尺寸值为 2^windowBits,windowBits 的值为 8~15 时deflate() 方法生成 zlib 格式的数据当 windowBits 为 31 时 deflate() 方法生成 gzip 格式。当取值为 -15 ~ -8 时deflate() 生成纯 deflate 算法压缩数据不包含 zlib 和 gzip 格式头和尾OSStatus status deflateInit2(zStream, Z_DEFAULT_COMPRESSION,Z_DEFLATED, 31, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY);*/if (status ! Z_OK){return nil;}NSInteger kZlibCompressChunkSize 2048;NSMutableData *compressedData [NSMutableData dataWithLength:kZlibCompressChunkSize];do {if ((status Z_BUF_ERROR) || (zStream.total_out compressedData.length)) {[compressedData increaseLengthBy:kZlibCompressChunkSize];}zStream.next_out (Bytef *)compressedData.bytes zStream.total_out;zStream.avail_out (uInt)(compressedData.length - zStream.total_out);status deflate(zStream, Z_FINISH);} while ((status Z_BUF_ERROR) || (status Z_OK));status deflateEnd(zStream);if ((status ! Z_OK) (status ! Z_STREAM_END)) {*err [[self class] inflateErrorWithCode:status];return nil;}compressedData.length zStream.total_out;return compressedData;}return nil; }- (NSData *)unZip:(Bytef *)bytes length:(NSUInteger)length error:(NSError **)err {if (length 0) return nil;NSUInteger halfLength length/2;NSMutableData *outputData [NSMutableData dataWithLength:lengthhalfLength];int status;zStream.next_in bytes;zStream.avail_in (unsigned int)length;zStream.avail_out 0;NSUInteger bytesProcessedAlready zStream.total_out;while (zStream.avail_in ! 0){if (zStream.total_out-bytesProcessedAlready [outputData length]) {[outputData increaseLengthBy:halfLength];}zStream.next_out (Bytef*)[outputData mutableBytes] zStream.total_out-bytesProcessedAlready;zStream.avail_out (unsigned int)([outputData length] - (zStream.total_out-bytesProcessedAlready));status inflate(zStream, Z_NO_FLUSH);if (status Z_STREAM_END){break;}else if (status ! Z_OK){if (err){*err [[self class] inflateErrorWithCode:status];}return nil;}}// Set real length[outputData setLength: zStream.total_out-bytesProcessedAlready];return outputData; } (NSData *)unZip:(NSData*)data error:(NSError **)err {NSError *theError nil;NSData *outputData [[NSZip zip] unZip:(Bytef *)[data bytes] length:[data length] error:theError];if (theError){if (err){*err theError;}return nil;}return outputData; } (BOOL)unZip:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err {NSFileManager *fileManager [[NSFileManager alloc] init];// Create an empty file at the destination pathif (![fileManager createFileAtPath:destinationPath contents:[NSData data] attributes:nil]) {if (err){*err [NSError errorWithDomain:NSZipErrorDomain code:11 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:Decompression of % failed because we were to create a file at %,sourcePath,destinationPath],NSLocalizedDescriptionKey,nil]];}return NO;}// Ensure the source file existsif (![fileManager fileExistsAtPath:sourcePath]){if (err){*err [NSError errorWithDomain:NSZipErrorDomain code:11 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:Decompression of % failed the file does not exist,sourcePath],NSLocalizedDescriptionKey,nil]];}return NO;}UInt8 inputData[DATA_CHUNK_SIZE];NSData *outputData;NSInteger readLength;NSError *theError nil;NSZip *decompressor [NSZip zip];NSInputStream *inputStream [NSInputStream inputStreamWithFileAtPath:sourcePath];[inputStream open];NSOutputStream *outputStream [NSOutputStream outputStreamToFileAtPath:destinationPath append:NO];[outputStream open];while ([decompressor zipReady]){// Read some data from the filereadLength [inputStream read:inputData maxLength:DATA_CHUNK_SIZE];// Make sure nothing went wrongif ([inputStream streamStatus] NSStreamStatusError){if (err){*err [NSError errorWithDomain:NSZipErrorDomain code:11 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:Decompression of % failed because we were unable to read from the source data file,sourcePath],NSLocalizedDescriptionKey,[inputStream streamError],NSUnderlyingErrorKey,nil]];}[decompressor closeZip];return NO;}// Have we reached the end of the input data?if (!readLength){break;}// Attempt to inflate the chunk of dataoutputData [decompressor unZip:inputData length:(NSUInteger)readLength error:theError];if (theError){if (err){*err theError;}[decompressor closeZip];return NO;}// Write the inflated data out to the destination file[outputStream write:(Bytef*)[outputData bytes] maxLength:[outputData length]];// Make sure nothing went wrongif ([inputStream streamStatus] NSStreamStatusError) {if (err){*err [NSError errorWithDomain:NSZipErrorDomain code:11 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:Decompression of % failed because we were unable to write to the destination data file at %,sourcePath,destinationPath],NSLocalizedDescriptionKey,[outputStream streamError],NSUnderlyingErrorKey,nil]];}[decompressor closeZip];return NO;}}[inputStream close];[outputStream close];NSError *error [decompressor closeZip];if (error){if (err){*err error;}return NO;}return YES; } (NSError *)inflateErrorWithCode:(int)code {return [NSError errorWithDomain:NSZipErrorDomain code:11 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:Decompression of data failed with code %d,code],NSLocalizedDescriptionKey,nil]]; } end使用方法 1、gzip压缩[默认为gzip压缩其他压缩看代码注释] //text为NSString类型将其压缩后通过Websocket传输 NSError *err nil; NSData *data [text dataUsingEncoding:NSUTF8StringEncoding]; NSData *zipData [[NSZip zip] zip:data error:err];[weakSelf.linkedSocket sendData:zipData error:nil]; 2、解压 //message为websocket返回的NSData数据进行解压 NSError *err nil; NSData *data [NSZip unZip:message error:err]; if (!err) {NSString *msg [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];//解压后的NSString分发到UI层面进行使用[weakSelf dispatchData:msg]; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业网站服务器跟域名都需要交钱吗做推广的公司

昨天我在办公室里,和我的一位同事谈论测试,他对编写单元测试有些不服气。 他使用的原因之一是有些测试似乎毫无意义,这使我想到了什么是单元测试,什么也不需要打扰。 考虑下面一个简单的不可变的Name Bean,其中包含一…

网站制作公司违法电子商务网站建设的步骤一般分为

1.简介 Java是使用最广泛的编程语言之一。 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言。 掌握Java的人有很多话题。 好消息是,您可以在线找到很多内容。 在这篇文章中,我们将对所有这些主题进行分类&#x…

建站平台免费加盟网站怎么做充值系统

1,安装压 JLink_Windows_V660c,官网可下载; 2,打开刚刚安装的 J-Flash V6.60c 选择创建新工程“Create a new project”,然后点击StartJ-Flash 点击之后跳出Select device框,选择TI 选择TI后&#xff0c…

网站开发英文论文英国帮人做设计作业网站

沉下来,沉下来,别让自己太浮躁路虽远,行则将至事虽难,做则必成 转载于:https://www.cnblogs.com/ttyttt/archive/2007/06/04/771071.html

微信里面如何做网站网站原型图是什么

系列文章目录 前言 模型预测控制可在每个控制间隔内解决一个优化问题,具体来说就是二次规划(QP)。求解结果决定了被控对象在下一个控制间隔之前使用的操纵变量(MV)。 该 QP 问题具有以下特点: 目标或 "成本 "函数 - …

asp后台怎么加载网站wordpress常用的插件推荐

本页面主要介绍了动态规划的基本思想,以及动态规划中状态及状态转移方程的设计思路,帮助各位初学者对动态规划有一个初步的了解。 本部分的其他页面,将介绍各种类型问题中动态规划模型的建立方法,以及一些动态规划的优化技巧。 引入 [IOI1994] 数字三角形](https://www.…

邯郸装修网站建设wordpress网站聊天插件

时间管理——你不可不知的3种时间管理方法 时间管理 英文名:Time Management   请问,如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱?   天下真有这样的好事吗?   是的,…

怎么建设网站啊电子请柬免费制作软件app

日常生活中使用各种应用程序时,密码安全问题是我们难以避免的。如果您也像我一样,经常忘记密码或混淆密码,就需要一款优秀的密码管理工具来帮助您解决这一问题。今天,我就来介绍一下密码管理器的功能和优势,看看它是如…

程序员找工作的网站腾讯网站开发语言

谎言——幸福的润滑剂 你对她说过谎吗?我想,即使你和她是最深爱的一对,你也不敢轻易地摇头说你没有!但并不是说两个人在一起生活,彼此之间就会充满谎言,就像梁静茹在《花园》里唱的一样:“谎言&…

金华建设局网站重庆黄页网站

背景 计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测、识别、理解、跟踪、判别决策的功能。以美团业务为例,在商家上单、团单展示、消费评价等多个环节都会涉及计算机视觉的应用,包括文字识别、图片分类、目…

郑州个人网站开发微信小程序开发步骤

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家、C站总榜第8🏆、HDZ核心组成员。欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 &#x1f345…

网站开发上市公司仿wordpress站

点击蓝字关注我们编辑:Alan Wang排版:Rani Sun微软 Reactor 为帮助广开发者,技术爱好者,更好的学习 .NET Core, C#, Python,数据科学,机器学习,AI,区块链, IoT 等技术,将…

网页ui设计网站黄页公司

题面 显然的一个建模是,每个叶子对应一个权值,代表比最晚的叶子早了多久,然后我们要做的就是给每条边赋上值,使得每个叶子到根的路径上的所有边权值和等于叶子的权值。 我们贪心的想一想,必然是离根越近的边赋值多的情…

宾县建设局网站网站建设拿什么框架

目录 0 前言 1 美食便签地图简介 2 美食便签地图小程序端开发 2.1技术选型 2.2前端UI设计 2.3主页界面 2.4个人信息界面 2.5 添加美食界面 2.6美食便签界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子页面-店铺详情界面 2.11 后台数据缓存 2.12 订阅消息通知 2.1…

新网站做优化要准备什么asp 网站数据库连接错误

智能客服系统是企业建立完善服务框架的重要工具。市面上存在着形态各异的各种客服系统,如何选择一款最适合自己企业的产品是很多采购人员想知道的问题。事实上,不同的智能客服系统之间的主要功能并未存在太大的区别,它们往往会在一些亮点功能…

wordpress外贸站如何加快门户网站建设

很多网友咨询学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是JAVA私塾愿意将一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来…

国家级门户网站有哪些网站制作学生信息管理

文章目录 什么是转义符使用"\x"定义char数组宏定义中的\ 什么是转义符 在C语言中,转义符用于将一些特殊字符表示为单个字符,常用的转义符有: \\:反斜杠符号\:单引号\":双引号\a&#xff1…

电脑怎么做服务器 网站代理推广

一.字典的介绍 dictionary(字典)是除了列表以外的 Python 中最灵活的数据类型。dict(字典)可以采用多个数据,通常用于存储描述一个物体的相关信息。 字典和列表最主要的区别是,字典是无序的对象集合&#x…

如何建立一个网站卖东西网站建设设计设计公司

译者注:可能很多程序员对C 已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。命名空间在1995年被引入到 c 标准中,通常是这样定义的:命名空间定义了新的作用域。它们提供了一…

怎么看网站是不是做竞价邯郸网络科技有限公司哪家好

软件工程网络15个人阅读作业1 Task1:博客园地址 茗想 Task2:码云地址 ming Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你…