gpt4 book ai didi

c - 套接字创建失败的原因有哪些?

转载 作者:行者123 更新时间:2023-11-30 14:42:29 24 4
gpt4 key购买 nike

我正在创建一个套接字,其参数如下-

fd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);

但由于某种原因套接字创建失败并且 fd 设置为 -1。

  1. 我想了解套接字创建失败的原因是什么?
  2. 如何找出在我的情况下套接字创建失败的原因?

注意:这是一致可重现的,我们连续重试套接字创建 5 次,间隔为 500 毫秒,但 5 次都失败。

最佳答案

正如 Eugene Sh/WeatherVane 所说,查看错误:

#include <errno.h>
#include <stdio.h>
#include <string.h>
...
fd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
if (fd == -1) {
printf("error cannot create socket, errno = %d : %s\n",
errno, strerror(errno));
...return/exit etc
}
...
<小时/>

我错了还是域名必须是PF_INET,然后socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);必须是socket(PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP) ; ?

sctp(7) - Linux man page

编辑:在 raspbian (Linux raspberrypi 4.14.79) 下我可以两者兼得

<小时/>

如果您以root身份运行,是否也会出现该错误?特别是如果您使用的是 Android(请参阅 what can cause a socket() “Permission denied” error?)

关于c - 套接字创建失败的原因有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54408005/

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