问题标签 [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 - IP_MULTICAST_TTL 和 windows7
我的应用程序正在创建一个 UDP 套接字并设置一些选项。一种选择是IP_MULTICAST_TTL.
当应用程序在 Windows 7 上运行时,我使用 wireshark 观察线路上的流量,我可以看到 TTL 始终为 1,这意味着它setsockopt()
没有任何效果(虽然它不会返回错误)。
深入研究代码,我发现IP_MULTICAST_TTL
Windows 7 上的值为 10,其他 Windows 版本上的值为 3。
如果我在 Windows 7 上强制该值为 3,setsockopt()
则工作正常,wireshark 报告正确的值。
我找到了这篇文章: http: //support.microsoft.com/kb/257460并且我确认我在 Winsock2.h 之后包含 Ws2tcpip.h 并且我正在链接 Ws2_32.lib
有什么建议么?
python - 使用 urllib2 加载 URL 时如何设置 TCP_NODELAY 标志?
我正在使用 urllib2 加载网页,我的代码是:
如何获取要设置的套接字属性TCP_NODELAY
?
在普通套接字中,我将使用函数:
c++ - setsockopt 参数 SO_RCVTIMEO 中的阻塞是什么意思
当我从 msdn链接查看 setsockopt 时。我遇到了一个参数 SO_RCVTIMEO,它的描述是“设置超时,以毫秒为单位,用于阻止接收调用。 ”我认为套接字侦听操作是事件驱动的,这意味着当内核从 NIC 卡中耗尽帧时,它会通知我的程序套接字,所以呢阻塞是怎么回事?
c - 使用原始源地址重放 http 流量
我想构建一个包含客户端和 Web 服务器的测试平台,我可以在其中向 Web 服务器重放一些记录的 http get 请求。所以我打算用原始源地址和端口号的请求来精确模拟实际流量。
为了构建客户端,我希望可以使用套接字选项 IP_FREEBIND 绑定到任何可能的源地址和端口号。为此目的是否有任何已知代码?(我真的不想重新发明轮子)我应该按照这个线程的建议使用原始套接字吗?
任何帮助将不胜感激。
c - “IP_TRANSPARENT”未在此范围内声明
我尝试使用 IP_TRANSPARENT 套接字选项。但是我得到“IP_TRANSPARENT”没有在这个范围内声明。如果我直接在代码中使用它的代码(19),我会得到绑定错误:“无效参数”。我应该重新编译我的内核来支持这个选项吗?如果是这样,我使用内核 2.6.32。我在内核参数界面中找不到任何选项。
有什么想法吗?
谢谢,
c - 我可以在 UDP 套接字上将 SO_RCVBUF 设置为 1
我有一个系统,当发生某些事情时,通过 UDP 套接字将单字节消息从一个进程发送到另一个进程。在接收端,这个事件是否发生过一次、十几次甚至一百万次都无关紧要。
与其进行许多无用的 recvfrom() 调用,我想也许我可以使用 setsockopt 将 SO_RCVBUF 设置为 1,我希望这会导致系统简单地忽略除第一条消息之外的所有消息(直到它被读取从而允许另一个消息)。然而,谷歌搜索发现一些证据表明这可能不是 100% 可移植的(看起来有些系统可能会悄悄地强制执行最小尺寸?)。
所以在我开始尝试这个工作之前,我想知道是否有人知道这有多大可能起作用?如果这在任何方面都重要的话,这在 Red Hat Linux 上。
python - 在linux上增加tcp接收窗口
类似于在 C 中设置 TCP 接收窗口并在 Linux 中使用 tcpdump以及为什么更改 SO_RCVBUF 的值不起作用?,我无法在 ubuntu linux 2.6.32-45 上增加大于 5888 的初始 tcp 接收窗口
tcpdump 说:
sysctl -a | grep net.*mem
说:
是否有其他东西对我的连接设置了接收窗口限制?
linux - SO_BINDTODEVICE 虚拟接口失败
我正在尝试运行绑定在接口上以设置多播的 PTPDV2(精确计时协议)服务器。
我有以下虚拟接口
现在,绑定到普通接口没有任何问题,但是对于任何虚拟接口,我都会失败。
我需要一些指示来克服这个问题。任何帮助在这里表示赞赏。
sockets - “setsockopt SO_SNDBUF 在 tcp_connect() 中失败”
我的 C 客户端出现问题,我在其中实现了客户端 gsoap 程序来调用 Web 服务。
在 Windows PC 上一切正常,但是当我在基于 linux 的 POS 设备上发布我的代码时,我收到以下错误:
我应该从哪里开始调试此错误,可能是什么原因?
返回的errornum是2
生成错误的代码部分:(在 stdsoap2.c 中)
linux - setsockopt() 返回 EBUSY
我刚刚成功打开了一个 RAW 套接字,我正在尝试使用以下功能导出内核 TX 和 RX 环。然而,当试图告诉内核导出第二个环时,setsockopt() 返回 EBUSY(设备或资源忙)。也就是说,执行下面的代码一次可以正常工作,所以我可以获得第一个环(对于 TX 或对于 RX)。当我尝试导出第二个环时出现问题(如果第一个环用于 RX,则用于 TX,反之亦然)。
应用程序不能使用带有 mmap()ed 内存的 TX 和 RX 使用相同的套接字吗?也就是说,我必须为 TX 开一个插槽,为 RX 开一个插槽吗?
}