zhwguest
V2EX  ›  Rust

std::net::UdpSocket 的 shutdown 机制是我理解出了问题么?

  •  
  •   zhwguest · Apr 17, 2025 · 2199 views
    This topic created in 415 days ago, the information mentioned may be changed or developed.

    std::net::UdpSocket 不提供 shutdown()接口,只能通过 drop 了所有的对象后自动关闭。

    但是我正阻塞在该对象上进行读取,又怎么可能通过 drop 该对象来触发关闭呢?

    请别告诉我要非阻塞调用,或者轮询调用,或者其他解决方案,我只是觉得接口这么设计我有点无法理解。

    4 replies    2025-04-30 01:33:53 +08:00
    hingle
        1
    hingle  
       Apr 17, 2025
    https://man7.org/linux/man-pages/man2/shutdown.2.html

    shutdown 本来就不是针对 UDP 这种无连接的。
    zhwguest
        2
    zhwguest  
    OP
       Apr 17, 2025
    @hingle 感谢,那关于 close 呢?
    sunnysab
        3
    sunnysab  
       Apr 26, 2025
    close 应该是释放该套接字相关资源。
    caobug
        4
    caobug  
       Apr 30, 2025
    「正阻塞在该对象上进行读取」:即使给你 shutdown ,你都阻塞了还怎么调用?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   914 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 22:37 · PVG 06:37 · LAX 15:37 · JFK 18:37
    ♥ Do have faith in what you're doing.