最近做了一份简单的socket项目,因为遇到了一些问题,我在cocochina发帖问了好多人,好多好心人帮助了我,虽然问题没有解决但还是十分感谢他们,后来遇到了群主,群主帮我解决了这个问题,我觉得我有必要写篇文章来总结下,下面废话不多说啦!
首先是socket的通信问题,这个链接比较简单,只需要你连接的端口号和ip地址,我在上篇文章内有介绍,大家可以看下。
1,编码问题
下面介绍socket传输通信,如将所需要的数据全部转成一个nsmutabledata,在传输时,直接传输这个data数据即刻(data就是一个二进制流数据,网络传输都是用这个的)
主要通过传输这个cmddata来传输我需要的数据
然后是数据转换类型与方法
1,字符串拼接
NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];
2,字符转int
int intString = [newString intValue];
3,int转字符
NSString *stringInt = [NSString stringWithFormat:@"%d",intString];
4,字符转float
float floatString = [newString floatValue];
5,float转字符
NSString *stringFloat = [NSString stringWithFormat:@"%f",intString];6. NSString
6.NSString转化为 char *
NSString * str= @“Test”;
const char * a =[str UTF8String];
7.char * 转化为 NSString
NSString *str=[NSString stringWithCStringencoding:NSUTF8StringEncoding];
8.int --> NSData
int someInt = 1;
NSString *aString = [NSString stringWithFormat:@"%d",someInt];
NSData *someData = [aString dataUsingEncoding:NSUTF8StringEncoding];
[someData writeToFile:[documentsDirectory stringByAppendingString:@"someFile"] atomically:YES];
9.NSData --> int
NSData* someData = [NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingString:@"someFile"];
NSString *aString = [NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];
int someInt = [aString intValue];
2,接收数据解码
返回得到的是一个data数据,根据返回的类型与数据大小的匹配,我们就能够解码,并且得到我们所需要的数据。
解码的信息就是将data数据转成我们所需要的数据类型,但是其中的浮点型数据转换就需要思考下了(作者在这里卡了n久,蛋疼无比,最终得到别人的帮助,成功的解决了)
这样做就能把double类型的数据给解析出来了,用了c的方法,而float只需要用32位的方法就可以了
这就是使用socket通信以及编解码的信息,我的心得与体会与大家分享,喜欢的麻烦点个赞谢谢