c - C 中的套接字创建何时失败?

标签 c sockets vxworks

我必须对软件的套接字相关要求进行测试。作为测试的一部分,我必须为套接字创建失败创建一个案例。我的问题是如何让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/

相关文章:

c - 如何在vxworks多任务环境下打印出不乱序的字符串?

vxworks 中的 C++ 11

c - .o 与 C 中的 .out

sockets - 放弃对EAGAIN的回复

c - 语句甚至在没有分号的情况下也能正常工作和执行

c - htonl/ntohl 在第二个命令上的值不正确?

objective-c - 什么会导致 CFSocket 自行关闭?

c++ - 将 GetTickCount() vxWorks 转换为 Linux

c - 在 C 中求矩阵的行列式

c - 使用 BSD 套接字模拟事件的 FTP 连接