前段时间,在做objetive-c下的Sokcet通讯,当使用C++程序做服务端时,一切正常;当用JAVA做服务端时,双方收不到数据,在查阅了一些资料后,整理一下注意点

1 消息末尾加回车和换行符

objetive-c发送数据时,要在末尾加上“\r\n”

  1. _dataToSend = [NSData dataWithBytes:"This is a test\n" length:15];

这是因为JAVA服务端使用类似于readline()的函数,读取缓冲区中的内容

2 编码方式需对应

ASCII编码

  1. NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];

UTF-8编码

  1. NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding: NSUTF8StringEncoding]];

编码要想对应,即都使用相同的编码方式。

04-30 01:06