Kotlin /本机编译器无法运行inet_addr,htons等

时间:2018-09-13 12:14:00

标签: kotlin-native

我想用kotlin / native编写带有套接字连接的简单程序:

有打开和绑定套接字的简单函数。

actual fun openSocket(endpoint: IpPort): Socket {
    // Initialize sockets in platform-dependent way.
    init_sockets()
    var socketDescriptor = 0
    memScoped {
        val serverAddr = alloc<sockaddr_in>()
        socketDescriptor = socket(AF_INET, SOCK_STREAM, 0)
            .ensureUnixCallResult("socket") { !it.isMinusOne() }
        with(serverAddr) {
            memset(this.ptr, 0, sockaddr_in.size.narrow())
            sin_family = AF_INET.convert()
            sin_addr.s_addr = inet_addr(endpoint.cstr.ptr); /
            //sin_port = htons(endpoint.port.convert()) 
        }
        bind(socketDescriptor, serverAddr.ptr.reinterpret(), sockaddr_in.size.convert())
            .ensureUnixCallResult("bind") { it == 0 }
    }
    return Socket(socketDescriptor)
}

编译器(./gradlew compileKonan)无法解析函数:inet_addrhtons。 此外,编译器解析器导入import platform.ios.*。 我认为这些功能应该在iOS系统(和任何其他OS)标头上。

build.gradle

apply plugin: 'konan'

konan.targets = ['iphone']

konanArtifacts {
    framework('MezzoCore') {
        enableMultiplatform true   
    }
}

dependencies {
    expectedBy project(':common')
}

我不明白我做错了什么。谁能帮我吗?

0 个答案:

没有答案