如何在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的时候偶然发现了以下链接:

我希望你能找到他们有用。

请注意,即使上述文章是用于桌面,我可以使用概念和代码,但几乎没有修改。

+0

不幸的是,你的答案并不涉及windows CE。我了解到原始IP套接字不受支持。您可以改用NDISUIO。 – harper 2011-09-10 09:10:29

+0

然后,如果您现在知道答案,那么您可能想要为问题添加正确的答案(如果太多人投票并且您的评论也将被删除,我可能会删除我的答案。 – 2011-09-12 03:28:09