【发布时间】:2016-12-22 11:06:39
【问题描述】:
我正在尝试实现一个 gsoap 服务器,它在 ipv4 和 ipv6 上侦听相同的端口,但它没有在“netstat -l”命令中列为 tcp6,尽管我使用 -DWITH_IPV6 -DWITH_NO_IPV6_V6ONLY 宏定义编译了 gsoap。“netstat -l " 命令有 tcp 监听服务器。当我使用-DWITH_IPV6 -DWITH_IPV6_V6ONLY 宏编译代码时,它仅适用于 Ipv6,并且“netstat -l”响应具有 tcp6 侦听服务器。
当我调试the code 时,我看到soap_bind 函数通过getaddrinfo 传递ai_family = PF_UNSPEC,并且它不使用返回的addrinfo 数据的ai_next。 addrinfo.ai_family 设置为 AF_INET,addrinfo.ai_next->ai_family 设置为 AF_INET6 并且不使用addrinfo.ai_next。
有没有办法通过/不修补 gsoap 源代码来成功?
【问题讨论】:
标签: c++ sockets ipv6 ipv4 gsoap