我必须对软件的套接字相关要求进行测试。作为测试的一部分,我必须为套接字创建失败创建一个案例。我的问题是如何让C语言的socket()函数返回错误值-1。以下是在软件中创建套接字的代码行。
int socket = socket(AF_INET, SOCK_DGRAM, 0);
系统配置:
- 操作系统:Windriver VxWorks
- 语言:C
最佳答案
除了参数无效或资源极低的情况外,套接字创建很少会失败(但在这些情况下通常什么都不起作用,因此尝试恢复是不可能完成的任务)。
例如 listen
调用可能会在运行时失败,因为另一个进程已经在监听同一端口。
在 windows socket 中,创建失败最常见的原因是 winsock 初始化调用尚未执行。在我看来,这是 API 中一个可怕的设计错误(如此糟糕以至于我认为这是无缘无故地故意阻止可移植性的尝试)。
关于c - C 中的套接字创建何时失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059415/