簡體   English   中英

在Swift中通過TCP發送消息(NULL終止)

[英]Sending Message Over TCP in Swift (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)
}

該代碼很好用,但是我的問題是我的服務器獲取的數據沒有空終止符,如您在下一個鏈接中所見: https : //gyazo.com/1a6576b515d37c9400a58ac67bfa2350我該怎么辦?

假設您正在使用此庫 ,則TCPClient.send(str:)的實現中存在一個錯誤,因為它在此行中使用strlen strlen將在第一個NUL字符處終止。

將您的代碼更改為:

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

你應該很好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM