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

时间:2016-04-26 18:46:08

标签: ios swift tcp client-server null-terminated

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

1 个答案:

答案 0 :(得分:0)

假设您使用的是this libraryTCPClient.send(str:)的实施存在一个错误,因为每this line使用strlenstrlen将以第一个NUL字符终止。

将您的代码更改为:

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

你应该很好