How can I bind a socket to a particular network interface? I tried using setsockopt
on server side, but the clients can still access the service through both et
The only way you can do it is as you mention -
by setting the particular IP address using
serv_addr.sin_addr.s_addr
You can't do it without knowing the address to bind to.
You can use ioctl
s to determine the current IP address if you need, though there may be a cleverer way to do this these days - I've not done much in modern Linux distros lately.