2013-07-10 72 views
2

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

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

你能告诉我,当这个socket函数返回值-1?

+0

这可能是一个愚蠢的问题,但你确实调用了'WSAStartup',不是吗? – Damon

回答

5

调用WSAGetLastError()以查找有关该错误的更多信息。我想你没有调用WSAStartup()。

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

+1

'socket()'错误时返回'INVALID_SOCKET',而不是'SOCKET_ERROR'。 –

+0

谢谢,修复它。 –