server - 为什么grpc把所有的ipv4地址都转换成ipv6来启动一个tcp服务器
问题描述
根据原生GRPC实现,这里:https ://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/tcp_server_custom.cc#L381 在这里打开socket之前所有ipv4地址都改成ipv6 : https ://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/tcp_uv.cc#L191
至少在 CentOS 上,这会导致 grpc 服务器无法开始监听。
谁能澄清一下为什么要进行这种转换,为什么不直接将所有 ipv4 和 ipv6 地址转发到套接字并让它们由其原始地址管理?现在我正在考虑将这个转换注释掉,因为我需要在没有 ipv6 的环境中使用这个服务器,但我不确定我是否会通过这样做来破坏任何东西......也许对我们的事实存在一些隐藏的依赖总是监听 ipv6 地址?
解决方案
推荐阅读
- python-3.x - pip包安装失败
- opengl - 为什么金字塔可以使用 GL_SMOOTH 着色,而另一个立方体只是像 GL_FLAT 一样着色?
- c# - 安装SwashBuckle在c#框架中没有添加swaggerconfig.cs
- python - 如何在 fxcmpy 中执行订单后才添加止盈?
- git - git-lfs 和 dvc 的区别
- php - 错误处理程序未在 Laravel 中捕获错误 500
- javascript - 如何在 ios 系统上监听 keydown 事件?
- javascript - 使用有效负载在输入上手动触发“更改”事件
- powerbi - 如何在 Power BI 中刷新时保存数据?
- ruby-on-rails - 使用 Active Storage 直接上传时自动将 HEIF 转换为 JPEG