2014-11-21 85 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];