- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近修补了GStreamer 0.10.36的副本,以在网络连接在有线/无线之间切换时使tcpclientsink超时(有关更多信息,请访问Method to Cancel/Abort GStreamer tcpclientsink Timeout)。这是一个简单的更改。我刚刚将以下内容添加到gsttcpclientsink.c的gst_tcp_client_sink_start()
函数中:
struct timeval timeout;
timeout.tv_sec = 60;
timeout.tv_usec = 0;
...
setsockopt (this->sock_fd.fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
最佳答案
这可能是Socket SO_RCVTIMEO Timeout is double the set value in C++/VC++的副本
我将答案粘贴在下面,因为我认为我也遇到了类似的问题。
粘贴答案
SO_RCVTIMEO和SO_SNDTIMEO不适用于所有套接字操作,您应该使用非阻塞模式和select
。
该行为可能会在不同的操作系统配置上更改。
在我的系统上,connect
超时是我在SO_RCVTIMEO中设置的值的两倍之后。一个快速的技巧,例如在连接之前将SO_RCVTIMEO设置为x/2
,而在连接成功后将其设置为x
,但是正确的解决方案是使用select。
引用
关于这个问题的讨论(阅读评论以回答):
关于sockets - 套接字SO_SNDTIMEO超时是设置值的两倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21783599/
我目前正在计划如何为 TCP 服务器开发一个中间人网络应用程序,该应用程序将在服务器和客户端之间传输数据。它将作为服务器的常规客户端和远程客户端的服务器而不修改任何数据。它将可选地用于检测和测量服务器
你能在 boost asio 中设置 SO_RCVTIMEO 和 SO_SNDTIMEO 套接字选项吗? 如果是怎么办? 请注意,我知道您可以改用计时器,但我想特别了解这些套接字选项。 最佳答案 当然
由于各种原因,我想在读取和写入服务器中的套接字时实现超时,但未能使其运行,因此请了解问题可能出在哪里。 为了设置读取和写入套接字的超时时间,我尝试使用函数 setsocketopt() 和 getso
我是一名优秀的程序员,十分优秀!