我希望在Visual C++中使用原始套接字(RAW Socket)。
我在Linux
上看到了一个函数,它是:
int out = socket(AF_INET, SOCK_RAW, htons(ETH_P_ALL));
使用这段代码在 Linux 上可以实现,但是在 Windows 平台上如何使用原始套接字呢?因为当我在 Visual C++ 中使用时出现了错误。
提前感谢。
编辑:
int out1 = socket(AF_INET, SOCK_RAW, IPPROTO_SCTP);
for (; ;)
{
int bytesIn = recvfrom(out1, buf, 2000, 0, (sockaddr*)&server, &serverLength);
if (bytesIn == SOCKET_ERROR)
{
cout << "Error Receving from Server" << WSAGetLastError() << endl;
}
else
{
cout << "MESSAGE RECV from Server " << " : " << bytesIn << endl;
}
}
这是我用来接收数据包的代码。