通过socket得到自己的ip地址
现在正在编一个在一个多网卡(多个ip)的服务器上的server程序。我一开始用INADDR_ANY绑定在一个监听的socketA上,当收到客户端的connect时,我server这边用accept接收,我想知道的是,怎样从accept的信息以及socketA中知道这个信息是从那个网卡,那个ip进来的?
谢谢!
------解决方案--------------------
getsockname() 可否?
------解决方案--------------------
LST=accept(LSL,&saddr,PSOCKLEN_T&addrlen);
if (INVALID_SOCKET==LST) {
Log("%03d error on (accept) %d\n",cn,LastError());
break;//
}
addrlen=sizeof(sockaddr);
if (0!=(rc=getpeername(LST,&saddr,PSOCKLEN_T&addrlen))) {
Log("%03d 0!=%d=getpeername\n",cn,rc);
} else {
strcpy(RemoteIP,inet_ntoa(((sockaddr_in *)(&saddr))->sin_addr));
}
------解决方案--------------------
引用:accept()的第二个参数就是地址信息呀。。。