【问题标题】:Create socket function returns -1创建套接字函数返回 -1
【发布时间】:2013-07-07 22:18:39
【问题描述】:

我是套接字编程的新手。我正在尝试创建一个 UDP 套接字,但 socket() 函数返回 -1

signed long int sockfd;
sockfd=socket(AF_INET, SOCK_DGRAM, 0);       //socket Function returns -1 Value

你能告诉我这个套接字函数何时返回 -1 值吗?

【问题讨论】:

  • 这可能是一个愚蠢的问题,但你确实打电话给WSAStartup,不是吗?

标签: c++ visual-studio-2010 sockets udp winsock


【解决方案1】:

调用 WSAGetLastError() 以了解有关错误的更多信息。我猜你没有调用 WSAStartup()。

也就是说,有一个 SOCKET 类型,您应该使用它来代替“signed long int”,并将其与 INVALID_SOCKET 进行比较。这些是 WinSock 和 BSD 套接字 API 之间的细微差别。如有疑问,请务必查看 Microsoft 的文档。

【讨论】:

  • socket() 出错时返回 INVALID_SOCKET,而不是 SOCKET_ERROR
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
相关资源
最近更新 更多