在Swift中通过TCP发送消息(NULL终止)

我正在使用以下代码的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我该怎么办?

假设你正在使用这个库 ,在TCPClient.send(str:)的实现中存在一个错误,因为它使用这个行的 strlenstrlen将会以第一个NUL字符结束。

将您的代码更改为:

  var (success, errmsg) = client.send(data:Array<UInt8>("|~\0".utf8)) 

你应该很好