请教一个socket编程中获取本地ip的问题
想写这样一个程序:在一个多网卡(即有多个ip地址)的pc上,基于udp创建了一个socket,只绑定port,不绑定ip。本机上各个ip接收到的信息都传给该socket。怎么知道一个信息是哪个ip接收到的呢?
请高手不吝赐教,谢谢!
[解决办法]
udp包还会被进一步封装,这些外层包装中有明确的目的地信息 ...
[解决办法]
你accept的时候就可以获得客户端的地址、端口等信息
[解决办法]
试试
int getpeername(
SOCKET s,
struct sockaddr* name,
int* namelen
);
....
第2个参数就是你想要得到的ip
[解决办法]
如何在linux挾實現就好頒多了
可以通過setsockopt梆定網卡
[解决办法]
用recvmsg函数可以达到效果,其中的参数msghdr会返回本地的ip地址。