ios - 带有 ipv6 的 libssh2 lib 不工作

标签 ios objective-c ssh ipv6 libssh2

在我的 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 让它工作吗?

最佳答案

只需要在套接字中使用 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];

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

相关文章:

ios - 编译 GLSL 着色器会破坏其他着色器

ios - 我们是否被迫使用应用内购买来获取国际电话服务?

ios - 自动布局中的红色中断线是什么意思?

objective-c - Objective C 类型作为参数

ios - 移除 NSNotificationCenter 观察者

linux - 如何使用 ssh-add 从代理中删除身份(pem 文件)

ssh - gsettings 更改无法通过 ssh 运行

ios 如果没有提供所有功能供审查,我的应用程序会被拒绝吗

iPhone - 按下按钮打开网址?

ubuntu - 主机 key 验证失败