最近做了一份簡單的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通訊以及編解碼的資訊,我的心得與體會與大家分享,喜歡的麻煩點個贊謝謝