【发布时间】:2016-03-03 10:51:52
【问题描述】:
我正在尝试向远程网络发送 ICMPV6 消息,作为第一步,我尝试在一个简单的类 (SendICMPv6.c) 中创建一个 ICMPv6 套接字,其中包含 winsock2、ws2tcpip、stdio 和stdlib 标头。但我无法创建套接字。有人可以帮忙看看有什么问题吗?
代码是:
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0) {
wprintf(L"WSAStartup failed: %d\n", iResult);
return 1;
}
int fd = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
if (fd < 0) {
perror("creating socket failed");
}
有人能解决问题吗?
【问题讨论】:
-
@aribeiro 代码不起作用,因此它将在代码审查中偏离主题。
-
@Pimgd,对不起,我的错!
-
@coredump:OP提到winsock,意思是代码运行在windows上,没有
errno,你得用WSAGetLastError()代替。