如何在WinCE5中使用原始套接字?
问题描述:
我需要使用Windows CE 5.0中的原始套接字。以下代码始终失败,并显示错误:如何在WinCE5中使用原始套接字?
socket failed, err:10044
。
(对指定的插槽类型支持不在这个地址族存在。)
WSAData wsaData;
SOCKET s;
int n;
n = WSAStartup(MAKEWORD(2,0), &wsaData);
if (n < 0) {
printf("WSAStartUp failed, err:%d\n", WSAGetLastError());
} else {
s = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
if (s < 0)
{
printf("socket failed, err:%d\n", WSAGetLastError());
}
}
我必须在Windows CE使用原始套接字做什么?
答
原始IP套接字在Windows CE 5.0中不受支持。 您可以使用NDISUIO发送任意内容的数据包。
答
我发现WinCE特定套接字的MSDN文档是相当少的,但guide for desktop winsock是相当不错的。
我试图写我的第一个插槽的应用程序给WinCE 5.0的时候偶然发现了以下链接:
- Porting Socket Applications to Winsock
- Porting Raw Socket to Winsock
- Determining if Raw Sockets are supported
我希望你能找到他们有用。
请注意,即使上述文章是用于桌面,我可以使用概念和代码,但几乎没有修改。
不幸的是,你的答案并不涉及windows CE。我了解到原始IP套接字不受支持。您可以改用NDISUIO。 – harper 2011-09-10 09:10:29
然后,如果您现在知道答案,那么您可能想要为问题添加正确的答案(如果太多人投票并且您的评论也将被删除,我可能会删除我的答案。 – 2011-09-12 03:28:09