2014-11-21 48 views
1

在我的iOS应用程序中,我使用libssh2库。我试图用ipv6地址ssh,但套接字不创建和获取零套接字。它与ipv4地址工作正常。libssh2 lib与ipv6不起作用

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

我有搜索这个,但没有找到ipv6支持与libssh2任何结果。

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

回答

1

只需要在套接字中使用ipv6属性而不是ipv4,并且您可以使用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];