我正在使用带有以下代码的swift套接字库:
let client:TCPClient = TCPClient(addr: "127.0.0.1", port: 8080)
var (success,errmsg)=client.connect(timeout: 1)
if success{
var (success,errmsg)=client.send(str:"|~\0" )
if success{
let data=client.read(1024*10)
if let d=data{
if let str=String(bytes: d, encoding: NSUTF8StringEncoding){
print(str)
}
}
}else{
print(errmsg)
}
}else{
print(errmsg)
}
代码工作得很好但我的问题是我的服务器获取没有null-terminator的数据,正如您在下一个链接中看到的那样:https://gyazo.com/1a6576b515d37c9400a58ac67bfa2350 我该怎么办?
答案 0 :(得分:0)
假设您使用的是this library,TCPClient.send(str:)
的实施存在一个错误,因为每this line使用strlen
。 strlen
将以第一个NUL
字符终止。
将您的代码更改为:
var (success, errmsg) = client.send(data:Array<UInt8>("|~\0".utf8))
你应该很好