【发布时间】:2017-01-04 04:53:02
【问题描述】:
我想从 Swift 调用 Posix 套接字函数 socket 和 bind。 socket 非常简单——它需要Int32s,但bind 会导致问题,因为我有一个sockaddr_in 指针,但它需要一个sockaddr 指针。在 C 中,这将是一个演员表,例如:
bind(sock, (struct sockaddr *)&sockAddress, sizeof(sockAddress))
这是 Swift 中的一个尝试:
let sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)
var sockAddress = sockaddr_in()
bind(sock, &sockAddress, UInt32(MemoryLayout<sockaddr_in>.size))
bind 行编译失败:无法将“sockaddr_in”类型的值转换为预期的参数类型“sockaddr”
如何转换指针?
【问题讨论】:
标签: swift swift3 unsafe-pointers