来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:JackJiang 发表于 2017-09-01 16:12 TCP协议的粘包问题很常见,你百度一下找个例子用下就好了。
引用:这不是马甲 发表于 2017-09-01 18:33 找了很久 都没找到合适的
引用:JackJiang 发表于 2017-09-01 18:59 ios上我没有粘包的 代码可以给你参考。实在找不到的话,你可以找个c++或java的,理解一下用OC实现一下就 ...
引用:这不是马甲 发表于 2017-09-05 08:55 我遇到个问题 就是有nadata数据 但是没法转成nsstring 这个是什么原因
- (NSInteger)packData:(NSData *)datas { if (datas.length < kDSPersonHeaderString.length + 4 + 4) { return 1; } dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); [self.mutalbeData appendData:datas]; dispatch_semaphore_signal(semaphore); NSString *string = [[NSString alloc] initWithData:_mutalbeData encoding:NSUTF8StringEncoding]; NSArray *stringArr = [string componentsSeparatedByString:kDSpersonEndString]; NSMutableArray *usefulStringArr = [NSMutableArray new]; int count = 0;//用来判断此次是否读取完毕 for (NSString *str in stringArr) { if ([str hasPrefix:kDSPersonHeaderString] && [str hasSuffix:@"}"]) {//判读他是json类型, NSString *new = [str substringWithRange:NSMakeRange(kDSPersonHeaderString.length + 4, str.length - (kDSPersonHeaderString.length + 4))]; NSData *data = [new dataUsingEncoding:NSUTF8StringEncoding]; id content = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; if (content) { //dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); [DSpersonToolKits unpackWithDic:content waitToSendArray:_allData lengthData:[datas subdataWithRange:NSMakeRange(kDSPersonHeaderString.length, 4)]]; // dispatch_semaphore_signal(semaphore); } [usefulStringArr addObject:new]; }else if (str.length != 0){ NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding]; dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); _mutalbeData = strData.mutableCopy; dispatch_semaphore_signal(semaphore); count ++; } } if (count == 0) { dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); _mutalbeData = [NSMutableData data]; dispatch_semaphore_signal(semaphore); } return count; }
引用:JackJiang 发表于 2017-09-05 10:06 肯定可以转的,但你说的问题应该转后变乱码吧
引用:这不是马甲 发表于 2017-09-06 09:49 打印出来是null
引用:cgxing_X7iF1 发表于 2018-04-04 10:52 MobileIMSDK 有处理 粘包问题吗?
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.109375 second(s), 33 queries , Gzip On.