草庐IT

Keep-alive

全部标签

windows-server-2008 - 如何在 Windows Server 2008 上设置 Keepalive

我有win32应用程序,其中winsock用于TCP/IP通信。我正在使用WSAIoctl函数设置keepalive值,它在WindowsXP中工作正常。但是在Win上。Server2008WSAIoctl失败,并且WSAGetLastError返回10022(无效参数),这没有任何意义。我设置keepalive的代码如下;//setper-connectionkeep-aliveoptiontcp_keepalivekeepAliveSettings;keepAliveSettings.onoff=1;keepAliveSettings.keepalivetime=500;eepAl

java - 如何关闭 TCP Keepalive?

我有一个充当服务器的Java应用程序和一个充当客户端的Android手机。它们通过TCP套接字进行通信。我经常让客户端hibernate,当它的缓冲区填满时,我希望wifiradio能够hibernate。问题是客户没有sleep。我注意到wireshark说我的服务器大约每半秒发送一个TCPKeepAlive数据包,因此wifi无法hibernate。我在服务器和客户端上尝试了以下内容。connectionSocket.setKeepAlive(false);但这似乎没有任何改变。我正在使用wireshark来分析流量。这是wireshark的屏幕截图......黑线表示我的客户端正

tcp - 将 keep-alive 与负载平衡器和防火墙一起使用很有用

我有客户端和服务器组件。服务器可能安装在防火墙或负载平衡器后面。许多站点/论坛建议使用TCP保持事件功能来避免由于不活动而导致连接终止。问题是来自客户端的保持事件消息是否真的会到达服务器?我尝试使用tcptrace实用程序模拟部署,发现保持事件消息未到达服务器,但客户端仍在获取保持事件消息的ACK。我不确定LB/FW是否以相同的方式工作。在防火墙和负载均衡器的情况下,keep-alive是避免由于套接字不活动而导致连接终止的好选择吗? 最佳答案 答案当然是:“视情况而定”。许多防火墙和负载均衡器保持独立的前端和后端TCP连接,例如:

c++ - 重用 Asio 连接

我正在从事一个项目,目前我有一个网络服务器。我必须添加功能,以便对于每个请求,我需要向其他服务器发送多个请求、获取响应并将结果发送回原始客户端。这些服务器的吞吐量很高,所以我开始担心套接字的数量以及设置新线程/套接字以通过多个套接字发送多个请求的速度。因此,我开始考虑对每个客户端开放一个(或几个)连接将有助于解决这个问题。我不确定持久连接和提升ASIO是如何工作的。我有一些问题:-如何使用ASIOtcp套接字设置保持事件时间。-我可以通过同一个套接字发送多个并发请求吗?我会遇到结果顺序的问题吗(每个结果都应该有一个Id,所以我指的不是乱序发送的顺序,而是更多的数据包顺序,如果响应不止一

networking - 当我使用 TCP 连接时,我应该发送 Keep alive 数据包吗?

我的问题是,我已经创建了一个TCP连接,当它停留约1小时而没有传输任何数据时,它已经与服务器断开连接,但它没有通知我它已断开连接,我是否应该发送保持事件数据包到服务器?或者我应该从服务器向客户端发送keepalive数据包吗?还是我应该同时发送给两者? 最佳答案 是的,你应该。几天前我创建了一个TCP套接字/服务器应用程序,我遇到了同样的问题。我通过开始发送保持事件数据包来修复它。如果你发送保活数据包,你的问题就会消失。我听说有人说操作系统会为你发送保活数据包,我对此不是很熟悉,但发送保活数据包对我来说很明确

vue页面缓存解决方案

关于vue页面通过解决方案方案一:使用keep-alive和v-if(备注:这种方案有问题,关闭面板后,在通过菜单打开页面还是有缓存)1、添加keep-alive2、在路由中添加缓存字段 path:'XXx',name:'XXXX',component:()=>import('.XXX'),meta:{title:'XXX',keepAlive:true}方案二:使用keep-alive和v-if(无方案一中的问题)1、添加keep-alive

c++ - 保持事件时间 - 在 C++ 中不能减少到一分钟以下

我在通过以下代码写入TCP端口的C++应用程序中实现了保活时间。它没有显示,但我实际上检查了有效的返回状态以验证设置选项是否有效。intoption=1;intkeepalive_intvl=1;intkeepalive_count=1;intkeepalive_idle=1;setsockopt(the_socket,SOL_SOCKET,SO_KEEPALIVE,&option,sizeof(int));setsockopt(the_socket,SOL_TCP,TCP_KEEPINTVL,&keepalive_intvl,sizeof(int));setsockopt(the_s

linux - TCP/IP : set socket option for keep-alive after connection has been established

是否可以在一些假设的应用程序级握手后设置套接字的SO_KEEPALIVE选项(TCP保持事件间隔和TCP保持事件值)?还是必须在调用accept之前设置?我关心Linux、Windows和eCoslwIP堆栈之间的互操作性,因此非常感谢有关这两个平台的信息。 最佳答案 正如EJP所说,你可以随时设置。manpage说:setsockopt()manipulateoptionsforthesocketreferredtobythefiledescriptorsockfd.你可以像这样设置或取消设置SO_KEEPALIVEintiOpt

http - 使用 HTTP keep-alive 和 websockets (socket.io) 时的 TCP 连接数

我已经使用数据库驱动的session管理实现了一个成熟的节点http服务器,并且能够在顶部使用socket.io来实现文件上传进度条和聊天应用程序。我还使用了node-http-proxy并且能够代理w​​ebsockets。在这种背景下,我有以下问题,我认为我需要知道这些问题才能成为一名有效的socket.io开发人员。我没有被困在任何特定的代码中,但下面要求的信息是成为有效的套接字开发人员所必须的,但似乎没有任何解释。我的理解:一个。HTTP使用TCP套接字作为底层传输。在旧的HTTP实现中,每个请求使用一个套接字。在较新的版本中,“Keep-alive”header用于使套接字保

c++ - boost tcp 接受器和 boost tcp 套接字的 keep_alive 选项

我有几个问题,都与keep_alive有关。basic_socket_acceptor::keep_alive之间有什么区别?和basic_stream_socket::keep_alive?什么时候使用哪个?我们是否需要为ip::tcp::acceptor使用任何类型的keep_alive?这对我来说没有意义,因为接受器本身没有没有连接,但也有一个keep_alive选项,因此困惑。如果设置了keep_alive,那么当BoostAsio检测到连接中断时,它的行为是什么?它如何/何时通知用户代码?它会抛出异常吗?如果是这样,哪个异常(exception)?我在文档中没有看到任何此类详