【问题标题】:How to use raw sockets in WinCE5?如何在 WinCE5 中使用原始套接字?
【发布时间】:2011-06-08 08:22:16
【问题描述】:

我需要在 Windows CE 5.0 中使用原始套接字。以下代码总是失败并出现错误

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 中使用原始套接字?

【问题讨论】:

    标签: windows-ce winsock raw-sockets


    【解决方案1】:

    我发现 WinCE 特定套接字的 MSDN 文档很少,但 guide for desktop winsock 非常好。

    在尝试为 WinCE 5.0 编写我的第一个套接字应用程序时,我偶然发现了以下链接:

    我希望它们对你有用。

    请注意,尽管上面的文章是针对桌面的,但我只需稍加修改即可使用概念和代码。

    【讨论】:

    • 很遗憾,您的回答并未针对 windows CE。我了解到不支持原始 IP 套接字。您可以改用 NDISUIO。
    • 那么,如果您现在知道答案,您可能想为问题添加一个正确的答案以帮助其他人(如果有太多人反对,我可能会删除我的答案,并且您的评论也会被删除)。
    【解决方案2】:

    Windows CE 5.0 不支持原始 IP 套接字。 您可以使用 NDISUIO 发送具有任意内容的数据包。

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 2010-09-16
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多