问题标签 [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_RCVTIMEO 不准确?
我使用hiredis redisSetTimeout函数设置超时10ms,当我启动100个线程时它是准确的10ms,但是当我启动1000个线程时,redisVCommand中的一些调用花费300+ms,而不是超时,谁能详细解释一下?
redisSetTimeout 函数调用如下系统函数
c++ - OSX 上 TCP_USER_TIMEOUT 的 setsockopt 选项名称是什么
我正在尝试将一些代码移植到 OSX - 似乎setsockopt
与 Linux 有一些不同。到目前为止,我发现并纠正的是使用 TCP_KEEPALIVE 而不是 TCP_KEEPIDLE。
OSX 的 TCP_USER_TIMEOUT 等价于什么?
使用 TCP_USER_TIMEOUT 编译失败并打印undeclared identifier
错误
sockets - 设置超时 TCP [ setsockopt + SO_RCVTIMEO ]
当我想用特定的套接字设置超时时,我想问一些事情我调用这个函数
它运行良好
现在我的问题
如果我将clientsocket设置为特定的超时..我怎样才能返回clientsocket所以没有超时?
例如设置超时(3000);收视率
然后在recv之后我想将它返回到没有超时的状态如何?
对你的帮助表示感谢 :)
c - setsockopt() 中为 SO_RCVBUF 指定的新值何时生效?
我的查询与 setsocketopt() api 中的“SO_RCVBUF”选项有关。setsockopt() 中为 SO_RCVBUF 指定的新值何时生效?
我正在测试 TCP/IP 的流量控制,下面是我的环境。客户端程序是一个缓慢的阅读器,它只有一个套接字。为了测试流量控制,我在建立连接之后和接收数据之前将 SO_RCVBUF 的值减小到 5000 字节。我的期望是,我的服务器程序在发送 5000+ 字节后应该等待客户端读取。但是服务器程序将数据发送到 ~60000 字节。之后,服务器程序将等待客户端读取。一旦客户端读取了 ~55000 字节,我就会看到接收缓冲区的新值(5000 字节)被使用。
是预期的吗?我猜 setsocketopt() 的效果应该是立竿见影的。接收缓冲区的初始值在 setsocketopt() 之后应该没有任何影响。
问候, 普拉桑斯
zeromq - ZeroMQ, XSUB does not receive
I have implemented one publisher and one subscriber network using ZeroMQ. I used XPUB and XSUB, because I want the subscriber be able to send data to publisher as well. My code works for XPUB + SUB, meaning subscriber can receive data from publisher. However, it does not work for XPUB + XSUB. This is probably because I can NOT do "setsockopt(ZMQ_SUBSCRIBE, ... )". I always get "Invalid argument" error at run time. Here is my code:
What's wrong in the way I set subscriber.setsockopt? If I replace the XSUB by SUB, it works. However, then I can not do the subscribe.send(msg) in the code.
sockets - SOL_SOCKET 可以用于任何 optname 吗?
我对 SCTP 编程非常陌生,在进行故障排除和参考一本书(Unix 网络编程,W.Richard Stevens 着)时,我遇到了一些模棱两可的东西。根据该书,他们在此处和此处将级别名称用作 SOL_SOCKET用于选项名称 (optname) 值 SCTP_INITMSG 和 SCTP_EVENTS,它们应该与 IPPROTO_SCTP 一起使用。两个代码都可以正常工作,所以我一定遗漏了一些东西,我觉得我遗漏了一些关键的东西。它是什么?请帮我解决这个问题。谢谢你。
c - C UDP 套接字:任意 setsockopt 行为(使用 SO_RCVTIMEO)
SO_RCVTIMEO 根本没有在我的输出函数中创建超时条件。我正在使用 ARQ 滑动窗口协议设计文件传输服务。为了使事情井井有条,我从基本的停止等待开始。
这是我对 timeval 的初始化
这是我在准备 recvfrom 超时时使用该结构和套接字
这是应该超时的代码主体:
}
问题:超时没有触发,但是 setsockopt 也没有返回任何错误。我无法知道我做错了什么。
如果我还能做些什么来澄清我的问题或环境,请告诉我。如果您对调试有任何建议,我将不胜感激。
linux - 为什么 setsockopt 返回 EINVAL?
我正在尝试使用setsockopt函数将地址添加到接口的多播地址列表,但它失败并显示 errno EINVAL。我在内核代码中放了一些 printk,看起来 errno 最终是在内核packet_setsockopt函数中设置的,因为传递给 optlen 的值小于packet_mreq 结构的大小。对于我的一生,我无法弄清楚为什么会这样。以下是相关代码:
sockets - 如何从特定 IP 发送多播数据?
我正在尝试从先前添加到接口的别名 IP 将数据发送到多播组。我正在使用 IP_MULTICAST_IF 和别名 IP 调用 setsockopt()。但数据始终从该接口的默认 IP 发送。为了解释,我提供了一些代码。
ip addr show
命令为ens33
接口提供以下输出:
现在 setsockopt() 用作:
但是,它总是发送多播数据包,192.168.190.183
并且在 setsockopt() 期间不会引发错误。
谁能解决这个问题?请帮忙。提前致谢。
c++ - 在 Linux 中使用 setsockopt 设置连接超时
我正在编写一个尝试使用 QTcpSocket 连接到对等点的 linux Qt5/c++ 应用程序。我打电话
当对等点可用时,它运行良好并立即连接。但是,当对等方不可用时:我第一次调用上述方法时,连接等待 1 分钟,然后我收到 SocketTimeoutError (5)。然后,每个后续的连接调用可能会在我收到 ConnectionRefusedError (0) 之前等待一秒钟,或者可能等待整整一分钟(取决于测试的系统)。
我可以使用 setsockopt 来减少等待初始连接的时间吗?
我应该指出,我已经设置了一些套接字选项,以便快速通知我连接丢失(见下文)。希望这些不会导致 1 分钟的初始连接错误延迟: