iOS socket通訊,編解碼,浮點型資料解析

我的時代我來創發表於2017-12-13

最近做了一份簡單的socket專案,因為遇到了一些問題,我在cocochina發帖問了好多人,好多好心人幫助了我,雖然問題沒有解決但還是十分感謝他們,後來遇到了群主,群主幫我解決了這個問題,我覺得我有必要寫篇文章來總結下,下面廢話不多說啦!

首先是socket的通訊問題,這個連結比較簡單,只需要你連線的埠號和ip地址,我在上篇文章內有介紹,大家可以看下。

1,編碼問題

下面介紹socket傳輸通訊,如將所需要的資料全部轉成一個nsmutabledata,在傳輸時,直接傳輸這個data資料即刻(data就是一個二進位制流資料,網路傳輸都是用這個的)


iOS socket通訊,編解碼,浮點型資料解析

主要通過傳輸這個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,接收資料解碼


iOS socket通訊,編解碼,浮點型資料解析

返回得到的是一個data資料,根據返回的型別與資料大小的匹配,我們就能夠解碼,並且得到我們所需要的資料。

解碼的資訊就是將data資料轉成我們所需要的資料型別,但是其中的浮點型資料轉換就需要思考下了(作者在這裡卡了n久,蛋疼無比,最終得到別人的幫助,成功的解決了)


iOS socket通訊,編解碼,浮點型資料解析

這樣做就能把double型別的資料給解析出來了,用了c的方法,而float只需要用32位的方法就可以了

這就是使用socket通訊以及編解碼的資訊,我的心得與體會與大家分享,喜歡的麻煩點個贊謝謝

相關文章