在我的iOS应用程序中,我正在使用libssh2库。我正在尝试使用ipv6地址ssh,但是套接字未创建并获得nil套接字。 ipv4地址工作正常。

static CFSocketRef _CreateSocketConnectedToHost(NSString* name, UInt16 port, CFOptionFlags callBackTypes, CFSocketCallBack callback, const CFSocketContext* context, CFTimeInterval timeOut)

我正在搜索此文件,但没有找到libssh2支持ipv6的任何结果。

请帮助我,libssh2是否不支持ipv6?我们可以使用libssh2使其工作吗?

最佳答案

只需要在套接字而不是ipv4中使用ipv6属性,就可以使用ipv6地址创建套接字。

struct sockaddr_in6 ipAddress6;
CFSocketSignature           signature;

ipAddress6.sin6_port = htons(port);
signature.protocolFamily = AF_INET6;
signature.protocol = IPPROTO_IP;//IPPROTO_IPV6;
signature.address = (CFDataRef)[NSData dataWithBytes:&ipAddress6 length:ipAddress6.sin6_len];

关于ios - 带有ipv6的libssh2 lib无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27055610/

10-13 06:34