我服务器端部分代码如下
connfd = accept(listenfd, (struct sockaddr_in *)&cliaddr, &len);
然后
getpeername(listenfd, (struct sockaddr_in *)&cliLog, &clilen);
printf("ip %s, port %d\n", inet_ntop(AF_INET, &cliLog.sin_addr, buff, sizeof(buff)), ntohs(cliLog.sin_port));
那么,应该输出什么呢?
我测试到结果是输出前一个连接到客户端的ip 和端口。
不理解这个函数在这里到用法,这里应该怎么理解,应该怎么用这个函数?
谢谢大家。
getpeername(connfd, (struct sockaddr_in *)&cliLog, &clilen);
我知道这样写是对的,想问下如果里面是listenfd会怎样?为什么会输出前一个连接到的客户端的ip 和端口
@ziyoudefeng: 我想问下,只有一个客户端连接时,也就是 accept 第一次成功执行时,getpeername(listenfd, (struct sockaddr_in *)&cliLog, &clilen); 得到的ip和端口是什么?