问题标签 [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.

0 投票
1 回答
790 浏览

c - SO_KEEPALIVE:在服务器套接字上设置还是在每个客户端上设置?

我具有以下用于为套接字配置 TCP Keepalive 的功能:

如果我在服务器 fd 上调用此函数,它是否会影响每个接受()的客户端(即接受()的客户端会继承这些套接字选项,从而配置 TCP Keepalive)?我宁愿不必为每个客户端调用此函数,以尽量减少开销。谢谢。

0 投票
0 回答
168 浏览

c++ - 需要在 SOL_SOCKET 和 IPPROTO_IP 级别设置sockopt

所以基本上我目前已经设置了我的套接字

因为我需要访问msghdr时间戳的原因。但是,我还需要访问传入数据报中的iphdrto pullttl和一些其他值。

每个插槽是否可以setsockopt超过一个级别?

0 投票
3 回答
2231 浏览

c - 设置没有块的套接字接收缓冲区大小

我在 C 中遇到了 Socket 的问题。数据包大小设置为3072in sock 选项,如下所示:

有时数据包是< 3072,我想得到它,即使它小于3072

输出是:

我想要这样的输出:

我试图MSG_WAITALL用作标志,recv但最后一个数据包没有发送......

我可以帮忙吗?谢谢!

0 投票
1 回答
1243 浏览

python-2.7 - python 3'MarkerServer'对象没有属性'setsockopt'

我有一个旧的 python 27 代码,我正在尝试移植到 python 35,并且对以下部分有疑问:

这将返回以下错误:

0 投票
1 回答
1973 浏览

sockets - Linux TCP 套接字时间戳选项

引用此在线内核文档

  • SO_TIMESTAMPING 生成接收、传输或两者的时间戳。支持多个时间戳源,包括硬件。支持为套接字生成时间戳。

Linux 支持 TCP 时间戳,我尝试编写一些演示代码来获取 TCP 数据包的任何时间戳。

服务器代码如下:

}

有什么想法为什么这里没有时间戳?谢谢

解决方案 我可以使用 onload 和 solarflare NIC 来获取软件时间戳和硬件时间戳。仍然不知道如何单独获取软件时间戳。

0 投票
1 回答
1182 浏览

c++ - 为什么将套接字发送/接收缓冲区大小设置为高于 sysctl max 时没有错误?

为什么将套接字发送/接收缓冲区大小设置为高于 sysctl max 时没有错误(如下所示)?“预期的行为”没有错误吗?


sysctl的套接字值rmem_maxwmem_max都设置为 212992:

当我创建一个套接字并尝试将发送/接收的套接字缓冲区大小设置为 64*1024*1024 (大于rmem_maxand的值)时:wmem_max

我希望看到一个错误,但我没有收到任何错误:

如果设置缓冲区大小不报告错误是 的“预期行为” setsockopt(),我想适当的代码是在调用后始终检查值setsockopt()并引发我自己的错误或警告。

0 投票
1 回答
681 浏览

sockets - (recv() == 0) 表示断开连接或超时?(套接字,Linux&Windows)

我在阻塞套接字上设置了超时..

如果recv() 然后返回零,我怎么知道这是链接断开还是读取超时?如果它是 t/o 我想阅读更多,如果它是 discon 我想采取其他行动。我意识到我可以删除 t/o,然后我就会知道它是不正常的,但我还需要定期监控读取过程的进展情况。

非常感谢任何帮助。干杯 - 丰富

0 投票
1 回答
8369 浏览

c++ - 套接字编程 C++ setsockopt()

我是套接字编程的新手。我正在尝试编写一个基本的套接字编程程序。我查看了 socket()、bind()、setsockopt() 函数和其他函数的用法以及工作代码示例。在 setsockopt() 函数中,我使用了 SO_REUSEPORT 选项,但是当我第一次在给定端口地址上运行程序时,它工作正常,但是对于任何后续运行,绑定都会失败,除非我更改为其他端口地址

我的代码示例:-

PS我是一个初学者,对上面使用的大多数参数不太了解

0 投票
1 回答
950 浏览

python - 如何在 python 中设置套接字选项 IP_DONTFRAG?

如何使用 python 套接字在 IP 标头中设置 DONT_FRAGMENT 标志?

以下代码

给我这个错误:

有人有想法吗?

0 投票
1 回答
4032 浏览

c - 为什么 IP_TTL 和 IP_MULTICAST_TTL 是单独的套接字选项?

发送 UDP 多播时,您可以使用IP_MULTICAST_TTL设置 TTL。但否则你会使用IP_TTL. 为什么这两个不同的选项在 和 的setsockopt()眼中getsockopt()?在任何情况下单独设置它们是有意义的吗?

在我看来,他们最终在 IP 标头中设置了相同的值。