2016-04-26 5 views
0

私は次のコードで迅速なソケットライブラリを使用しています:(NULL終端)

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終止符せずにデータを取得するということです次のリンクにあるように:https://gyazo.com/1a6576b515d37c9400a58ac67bfa2350 私は何ができますか?

答えて

0

this libraryを使用していると仮定すると、実装にはTCPClient.send(str:)というバグがあり、それはにstrlenを使用しているためです。 strlenは最初にNUL文字で終了します。

にコードを変更し

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

、あなたはあなたが解決策に私を導いた

+0

良いはずです! ソリューション: let str = "test" let byteArray = [UInt8](str.utf8) –

+0

ありがとう@Stuart Carnie –

関連する問題