c++ - 在 C/Unix 中监听 IP 子网的套接字

标签 c++ c unix network-programming unix-socket

我正在尝试用 C 语言编写一个服务器-客户端套接字程序。目标是让服务器监听特定端口,但跨越IP 地址范围 属于相同的 IP 子网。此 IP 子网属于 127.x.x.x 范围(当然不是 127.0.0.1)。

需要注意的几点:

  • 这是一个基于流的套接字,而不是数据报套接字。
  • 这不是广播地址。
  • 仅在 Unix/Linux 平台上使用 C/C++ 实现

我不想在服务器上为范围内的每个 IP 地址打开多个套接字。这是不可扩展的。

如有任何帮助,我们将不胜感激。这甚至可行吗?

最佳答案

您只能绑定(bind)到一个套接字上的一个地址。为什么不能绑定(bind)到 INADDR_ANY 并简单地拒绝任何未绑定(bind)到目标 IP 的数据包?或者,您可以绑定(bind)到任意端口并使用操作系统级别的魔法(例如 iptables、bpf)将发往这些 IP/端口组合的数据包重新路由到您的套接字。

关于c++ - 在 C/Unix 中监听 IP 子网的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183769/

相关文章:

c++ - 如何隐藏 QTreeView 中的某些列?

在重载算术运算符中调用 C++ 析构函数

c - 如何使用指针?在C中

bash - Unix bash 错误 - 需要二进制运算符

python - 如何从 Python 代码创建 Unix 和 Linux 二进制文件

c++ - 在 Python 中公开来自 OpenCV 的 LBP 描述符

c++ - 在基于 Makefile 的解决方案中使用 Visual Studio 调试器

C 中的案例/开关不起作用

c - 具有指针作为 C 成员的结构的 memcpy

linux - 用两条新线替换一条线