【问题标题】:MSG_WAITALL Flag in DD 中的 MSG_WAITALL 标志
【发布时间】:2013-11-19 19:09:02
【问题描述】:

有没有办法在 D 中调用带有 MSG_WAITALL 标志的 Socket 上的 receive()?我检查了来源,但似乎没有它的枚举。

【问题讨论】:

    标签: sockets d recv


    【解决方案1】:

    看起来 phobos 没有定义它,但 druntime 有,所以你可以将值转换为 SocketFlags:

    // on posix
    import core.sys.posix.sys.socket;
    receive(buffer, cast(SocketFlags) MSG_WAITALL);
    
    // on windows
    receive(buffer, cast(SocketFlags) 0x08 /* MSG_WAITALL, number found on msdn */);
    

    这有点骇人听闻,但是如果您查看源代码,您可以看到标志在传递给低级别 recv 时只是被转换回 int ,所以它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      相关资源
      最近更新 更多