iOS - 使用 GCDAsyncSocket 向服务器发送一些东西有一些错误
iOS - Use GCDAsyncSocket to send something to server have some error
我有两个客户端,一个是iOS(客户端A),另一个是Jave(客户端B),客户端A用于发件人,客户端B从客户端A接收数据并将其打印在控制台,现在我向客户端 B 发送一些字符串(字符串和 JsonString),客户端 B 可以从客户端 A 接收消息,但控制台打印不完整
这是我的步骤
1、我在iOS
中定义了一个NSDictionary
let dict:NSDictionary = ["type":type,"x":point.x,"y":point.y]
2、将其转换为json字符串并在json字符串
中追加一些字符串
var error:NSError?
let data = NSJSONSerialization.dataWithJSONObject(dict,options:NSJSONWritingOptions.PrettyPrinted, error: &error)
var str = NSString(data: data!, encoding: NSUTF8StringEncoding)
var newStr = return "\(toPort)#\(str!)"
然后我在 iOS 控制台打印它,它工作正常
3、我把字符串转成NSData
let data = newStr.dataUsingEncoding(NSUTF8StringEncoding)
4、发送NSData到服务器
self.socket!.writeData(data!, withTimeout: self.timeout, tag: 0)
5、客户端B只显示{
,怎么回事?
然后我尝试用jave实现客户端A,在客户端B上运行正常
我解决了
1、删除str
中的所有\n
2、使用
var newStr = return "\(toPort)#\(str!)\n"
代表
var newStr = return "\(toPort)#\(str!)"
我有两个客户端,一个是iOS(客户端A),另一个是Jave(客户端B),客户端A用于发件人,客户端B从客户端A接收数据并将其打印在控制台,现在我向客户端 B 发送一些字符串(字符串和 JsonString),客户端 B 可以从客户端 A 接收消息,但控制台打印不完整
这是我的步骤
1、我在iOS
中定义了一个NSDictionarylet dict:NSDictionary = ["type":type,"x":point.x,"y":point.y]
2、将其转换为json字符串并在json字符串
中追加一些字符串var error:NSError?
let data = NSJSONSerialization.dataWithJSONObject(dict,options:NSJSONWritingOptions.PrettyPrinted, error: &error)
var str = NSString(data: data!, encoding: NSUTF8StringEncoding)
var newStr = return "\(toPort)#\(str!)"
然后我在 iOS 控制台打印它,它工作正常
3、我把字符串转成NSData
let data = newStr.dataUsingEncoding(NSUTF8StringEncoding)
4、发送NSData到服务器
self.socket!.writeData(data!, withTimeout: self.timeout, tag: 0)
5、客户端B只显示{
,怎么回事?
然后我尝试用jave实现客户端A,在客户端B上运行正常
我解决了
1、删除str
\n
2、使用
var newStr = return "\(toPort)#\(str!)\n"
代表
var newStr = return "\(toPort)#\(str!)"