使用和UDP套接字时如何设置源地址

Nap*_*981 4 c++ sockets linux udp

我有两台使用VRRP进行冗余的电脑.因此,每台PC(Linux)都有一个物理和一个虚拟IP地址.

我有一个带有UDP协议的客户端/服务器架构的软件(C++).软件将侦听套接字绑定在"0.0.0.0"上,并在每次需要向另一方发送一些数据时使用新套接字.通过wireshark,我看到当它发送数据时,源IP是phisycal ...我怎样才能将发送套接字的源地址设置为虚拟的?

注意:Whit ifconfig我只看到带有物理地址的eth0 ...

cni*_*tar 8

当内核需要通过套接字发送内容时,它会执行这些步骤

  • 如果套接字已绑定,请使用该源地址
  • 是套接字未绑定,它查找接口并选择源地址

所以你需要bind(2)你的插座到你想要的地址.有关更多信息:源地址选择.