【问题标题】:SO_SNDBUF and SO_RCVBUF settings for UDPUDP 的 SO_SNDBUF 和 SO_RCVBUF 设置
【发布时间】:2015-04-25 21:10:14
【问题描述】:

SO_SNDBUF 和 SO_RCVBUF 根据套接字缓冲区大小进行定义。 但是在 UDP 服务器套接字的情况下,这是否意味着与该套接字通信的所有目的地的总体大小,或者它是来自远程地址的单个连接的大小。

示例: 用户 A 正在从 3.3.3.3 端口 50000 向服务器 1.1.1.1 的 1234 端口发送数据

用户 B 正在从 4.4.4.4 端口 50000 向服务器 1.1.1.1 的 1234 端口发送数据

用户 C 正在从 5.5.5.5 端口 50000 向服务器 1.1.1.1 的 1234 端口发送数据

如您所见,只有一个服务器套接字。如果将 SO_SNDBUF 和 SO_RCVBUF 设置为 32KB,这是否意味着服务器上的总发送缓冲区大小和总接收缓冲区大小将是 32KB 或 96KB?

【问题讨论】:

    标签: udp


    【解决方案1】:

    在UDP的情况下,没有连接,所以'来自远程地址的单一连接'没有意义。

    【讨论】:

    • 你好,可能有逻辑连接,你可以在客户端的netstat socket中看到对方地址。至于java,您可以启动连接操作,这将设置远程地址。 download.java.net/jdk7/archive/b123/docs/api/java/net/… 但是,问题在于缓冲区是整体还是每个目的地。最好的问候 Yulian Oifa
    • 我们没有实际联系。这只是本地 API 的一个技巧。例如,一端可能是。 “连接”,而另一个则没有。无论哪种方式,您的问题基本上没有意义。如果此端已连接,则没有其他人可以发送或被发送到,因此缓冲区当然仅适用于连接目标。如果没有,就没有。
    猜你喜欢
    • 2011-05-14
    • 2021-07-10
    • 2013-04-15
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多