2
我一直在試圖建立一個連接到本地文件的連接,但錯誤號總是返回-1連接到本地套接字
var socketPath = "/path/to/socket"
let sockDesc = socket(AF_LOCAL, SOCK_STREAM, 0)
var address = sockaddr_un()
address.sun_family = UInt8(AF_LOCAL)
address.sun_len = UInt8(bitPattern:Int8(MemoryLayout<sockaddr_un>.size))
let dataPtr = UnsafeMutablePointer<Int8>(&address.sun_path.0)
strncpy(dataPtr, socketPath, socketPath.characters.count)
let result = withUnsafePointer(to: &address) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
connect(sockDesc, $0, socklen_t(MemoryLayout<sockaddr>.stride));
}
}
插座是有效的,因爲其他客戶端,在Qt的開發可以愉快地連接到這條路。
這裏有明顯的錯誤,還是應該這樣工作?
謝謝,這正是我正在尋找和很好地瞭解strlcpy。 – TheDarkKnight