问题标签 [setsockopt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sockets - BSD套接字设置sockopt选项以避免在下一次发送之前等待确认
我正在尝试使用专有的简单原始 TCP 协议通过以太网发送一些 KB 的数据。
标准 Windows 配置要求在返回确认数据包之前接收两 (2) 个数据包,除非您使用 TcpAckFrequency = 1 修改注册表,在这种情况下,一个接收到的数据包足以发送回确认,否则无论如何您将在 TcpDelAckTicks 之后收到一个 ACK * 默认情况下 100 = 200 毫秒(这是另一个注册表项)。如果我以小于 1460 字节的块发送数据,这是一个问题,因为每个块将在 200 毫秒后得到确认,并且发送者将在发送下一个数据包之前等待。一种解决方案是发送大于 1460 字节的数据,以便实际发送两个数据包并接收 ACK。
但是,如果我想发送更小的数据包呢?有没有办法用 setsockopt 配置套接字,以便在发送下一个数据包之前不等待确认数据包?
非常感谢您提前。
c++ - 无法设置 IP_TTL 和 IP_TOS Setsockopt
我已经定义了一个 UDP 套接字
// 标识符 IP_TTL 未定义
// 标识符 SOL_IP 和 IP_TOS 未定义
我收到编译错误我是否缺少一些 HeaderFile
c# - 当我将 ReuseAddress 设置为 true 时,为什么没有来自 BeginReceive 的回调?UDP
我正在为 UDP 接收和发送功能创建一个 C# 套接字,并为接收提供异步回调函数。很简单,对!消除所有皱纹需要一段时间,但它确实有效......好吧,只要你占领港口!我需要允许其他应用程序使用相同的端口号。没问题,对!有一个选项,SetSocketOption(...) for ReuseAddress ...
为什么当我将 ReuseAddress 设置为 true 时,回调函数不再被命中?
sockets - 如何在启用 keepalive 选项的情况下检测死客户端
正如我在标题中提到的,我正在使用 keepalive 选项来检测服务器端的死客户端。在连接的 tcp 套接字上启用 keepalive 的代码片段如下所示。其他操纵 keepalive 行为的选项,如 TCP_KEEPCNT、TCP_KEEPIDLE、TCP_KEEPINTVL 等,默认情况下是系统。
在服务器端,在已连接的套接字上,服务器线程将处于 recv 调用中,等待客户端向服务器发送命令。这个的代码片段看起来像这样。
当客户端正常关闭时,recv 调用返回 0,我确保客户端已终止。所以我的问题是当keepalive检测到死客户端时recv返回什么?或者它是否为系统错误变量设置了错误,我可以从“get_last_sock_error”中读取它并确保客户端已死。谢谢。
c++ - 套接字上的 IP_ADD_MEMBERSHIP,套接字也会监听单播吗?
考虑下面的代码,
我正在尝试为多播绑定 UDP 套接字。
我已经将它绑定到一个特定的端口,并设置IP_ADD_MEMBERSHIP
了要监听的地址。
我的问题:套接字会接收到该端口的单播 UDP 数据包吗?如果是这样,我该如何预防?我希望只接收多播。
c - 如何正确使用套接字重用地址选项
我现在正在调试我的套接字应用程序,包括持续运行和关闭它。我的问题是当我运行并关闭它然后再次运行时,我收到10048错误代码,表明地址已在使用中。我尝试将套接字描述符设置为,但如果我一致地运行和关闭我的应用程序,SO_REUSEADDR
仍然会收到10048错误代码。
linux - 做一组后getsockopt SO_RECVBUF在linux中显示两倍的值?
当使用 SO_RECVBUF 调用 setsockopt,然后转身使用 SO_RECVBUF 调用 getsockopt 时,它似乎告诉我它将缓冲区大小设置为我请求设置的两倍。有人知道为什么会这样吗?
有问题的代码:
https://gist.github.com/rdp/8443238
输出:
仅在 linux 中,在其他操作系统上似乎将其报告为我设置的值。谢谢你。
c - 设置套接字选项为什么对于 ICMP 请求中的套接字 (IP_HDRINCL) 如此重要?
我是套接字编程的新手
我看到了一个ICMP请求程序,因为他们习惯setsockopt
了一个socket
int on = 1;
但是即使我不使用这个语句,程序也可以正常运行。为什么向内核提及这个包括 IP 结构的套接字如此重要?
c++ - setsockopt 返回错误 10014
我正在尝试编写一个简单的 UDP 服务器,它在多播组上通告其服务端口,但我无法让多播工作。我尝试查看 Microsoft 文档并复制/粘贴他们的一些代码,但它不起作用。这是有问题的代码:
任何帮助,将不胜感激。