这种方法对于linux和win Socket2都适用的(实际上win socket2也是改自伯克利网络协议源码)。亲测可用!
struct sockaddr_in sa;
int len = sizeof(sa);
getpeername(sk->sockfd, (struct sockaddr *)&sa, (socklen_t*)&len); //sockfd 套接字标符
printf("对方IP:%s", inet_ntoa(sa.sin_addr));
struct sockaddr_in sa;
int len = sizeof(sa);
getpeername(sk->sockfd, (struct sockaddr *)&sa, (socklen_t*)&len); //sockfd 套接字标符
printf("对方IP:%s", inet_ntoa(sa.sin_addr));