gpt4 book ai didi

c - getpeername 后出现段错误

转载 作者:行者123 更新时间:2023-11-30 17:10:08 25 4
gpt4 key购买 nike

我正在用 C 语言研究一个简单的 TCP 服务器,并遇到以下问题。我的代码如下所示:

struct sockaddr_in servaddr;
socklen_t address_len;
int connfd, sockerr;
...

address_len = sizeof(servaddr);
if (sockerr = getpeername(connfd, (struct sockaddr *) &servaddr, &address_len) == -1) {
perror("peername error");
exit(1);
}
else {
printf("IP: %s\n", inet_ntoa(servaddr.sin_addr));
printf("Port: %d\n", (int) ntohs(servaddr.sin_port));
}

但是当我执行代码时,出现段错误。但是,如果我交换 printf 行,则端口会正确显示,因此问题出在 sin_addr 字段上。换句话说,问题在于:

printf("IP: %s\n", inet_ntoa(servaddr.sin_addr));

关于如何修复它有什么想法吗?

最佳答案

好吧,我重写了我的代码以更好地适合此网站中的示例:http://www.retran.com/beej/getpeernameman.html结果成功了。

尽管如此,我仍然不知道之前出了什么问题。

关于c - getpeername 后出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33017520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com