前段时间,在做objetive-c下的Sokcet通讯,当使用C++程序做服务端时,一切正常;当用JAVA做服务端时,双方收不到数据,在查阅了一些资料后,整理一下注意点
1 消息末尾加回车和换行符
objetive-c发送数据时,要在末尾加上“\r\n”
- _dataToSend = [NSData dataWithBytes:"This is a test\n" length:15];
这是因为JAVA服务端使用类似于readline()的函数,读取缓冲区中的内容
2 编码方式需对应
ASCII编码
- NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
UTF-8编码
- NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding: NSUTF8StringEncoding]];
编码要想对应,即都使用相同的编码方式。