问题标签 [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.
c - SO_KEEPALIVE:在服务器套接字上设置还是在每个客户端上设置?
我具有以下用于为套接字配置 TCP Keepalive 的功能:
如果我在服务器 fd 上调用此函数,它是否会影响每个接受()的客户端(即接受()的客户端会继承这些套接字选项,从而配置 TCP Keepalive)?我宁愿不必为每个客户端调用此函数,以尽量减少开销。谢谢。
c++ - 需要在 SOL_SOCKET 和 IPPROTO_IP 级别设置sockopt
所以基本上我目前已经设置了我的套接字
因为我需要访问msghdr
时间戳的原因。但是,我还需要访问传入数据报中的iphdr
to pullttl
和一些其他值。
每个插槽是否可以setsockopt
超过一个级别?
c - 设置没有块的套接字接收缓冲区大小
我在 C 中遇到了 Socket 的问题。数据包大小设置为3072
in sock 选项,如下所示:
有时数据包是< 3072
,我想得到它,即使它小于3072
输出是:
我想要这样的输出:
我试图MSG_WAITALL
用作标志,recv
但最后一个数据包没有发送......
我可以帮忙吗?谢谢!
python-2.7 - python 3'MarkerServer'对象没有属性'setsockopt'
我有一个旧的 python 27 代码,我正在尝试移植到 python 35,并且对以下部分有疑问:
这将返回以下错误:
sockets - Linux TCP 套接字时间戳选项
引用此在线内核文档
- SO_TIMESTAMPING 生成接收、传输或两者的时间戳。支持多个时间戳源,包括硬件。支持为流套接字生成时间戳。
Linux 支持 TCP 时间戳,我尝试编写一些演示代码来获取 TCP 数据包的任何时间戳。
服务器代码如下:
}
有什么想法为什么这里没有时间戳?谢谢
解决方案 我可以使用 onload 和 solarflare NIC 来获取软件时间戳和硬件时间戳。仍然不知道如何单独获取软件时间戳。
c++ - 为什么将套接字发送/接收缓冲区大小设置为高于 sysctl max 时没有错误?
为什么将套接字发送/接收缓冲区大小设置为高于 sysctl max 时没有错误(如下所示)?“预期的行为”没有错误吗?
我sysctl
的套接字值rmem_max
和wmem_max
都设置为 212992:
当我创建一个套接字并尝试将发送/接收的套接字缓冲区大小设置为 64*1024*1024 (大于rmem_max
and的值)时:wmem_max
我希望看到一个错误,但我没有收到任何错误:
如果设置缓冲区大小不报告错误是 的“预期行为” setsockopt()
,我想适当的代码是在调用后始终检查值setsockopt()
并引发我自己的错误或警告。
sockets - (recv() == 0) 表示断开连接或超时?(套接字,Linux&Windows)
我在阻塞套接字上设置了超时..
如果recv() 然后返回零,我怎么知道这是链接断开还是读取超时?如果它是 t/o 我想阅读更多,如果它是 discon 我想采取其他行动。我意识到我可以删除 t/o,然后我就会知道它是不正常的,但我还需要定期监控读取过程的进展情况。
非常感谢任何帮助。干杯 - 丰富
c++ - 套接字编程 C++ setsockopt()
我是套接字编程的新手。我正在尝试编写一个基本的套接字编程程序。我查看了 socket()、bind()、setsockopt() 函数和其他函数的用法以及工作代码示例。在 setsockopt() 函数中,我使用了 SO_REUSEPORT 选项,但是当我第一次在给定端口地址上运行程序时,它工作正常,但是对于任何后续运行,绑定都会失败,除非我更改为其他端口地址
我的代码示例:-
PS我是一个初学者,对上面使用的大多数参数不太了解
python - 如何在 python 中设置套接字选项 IP_DONTFRAG?
如何使用 python 套接字在 IP 标头中设置 DONT_FRAGMENT 标志?
以下代码
给我这个错误:
有人有想法吗?
c - 为什么 IP_TTL 和 IP_MULTICAST_TTL 是单独的套接字选项?
发送 UDP 多播时,您可以使用IP_MULTICAST_TTL
设置 TTL。但否则你会使用IP_TTL
. 为什么这两个不同的选项在 和 的setsockopt()
眼中getsockopt()
?在任何情况下单独设置它们是有意义的吗?
在我看来,他们最终在 IP 标头中设置了相同的值。