草庐IT

Keep-alive

全部标签

c - RHEL 7.1 中持久 TCP 连接的高可用性/故障转移

具有持久TCP连接的高可用性/故障转移我正在尝试找出正确的部分来为基于C的服务器应用程序实现高可用性和故障转移设置。理想情况下,TCP连接会持续数天。如果主服务器由于不受控制的网络问题而关闭,则备用服务器将充当主服务器,并将TCP连接转移到该服务器。套接字连接中的数据看起来与protobuf数据结构非常相似。这不是HTTP。到目前为止,我一直在研究keepalived和HAProxy,但它们似乎都不允许在不断开session的情况下将持久TCPsession重定向/故障转移到不同的备用服务器。我正在寻找的是,如果主服务器出现故障,那么备用服务器将处理所有具有TCP连接的客户端,而不会断

javascript - 多个 tcp 连接尽管有 http-alive

我不确定我对http-keep-alive的理解是否正确,在我看来,它应该重用tcp连接,而不是建立一个新连接。然而,我发现了一些非常奇怪的事情,似乎很难预料到httpkeep-alive的行为。服务器:NodeJS和Express^4.16.3我已经使用Wireshark分析了结果情况一:服务器端for(leti=1;i{res.header('cache-control','no-store');res.send('i');});}server.keepAliveTimeout=50000;客户端setTimeout(()=>{for(leti=1;iconsole.log(dat

tcp - Microchip TCPIP keep alive 不起作用

我正在尝试使用PIC24F构建服务器。这是我正在发布的一段代码:switch(TCPServerState){caseSM_HOME://Allocateasocketforthisservertolistenandacceptconnectionsonsocket.Socket=TCPOpen(0,TCP_OPEN_SERVER,SERVER_PORT,TCP_PURPOSE_GENERIC_TCP_SERVER);if(socket.Socket!=INVALID_SOCKET){TCPServerState=SM_LISTENING;}break;caseSM_LISTENING

tcp - 无需任何 KeepAlive() 方法的 TCP 持久双工

我需要为事件通知实现持久的TCP双工连接。客户端注册事件,服务器将此事件通知所有订阅者。问题是,TCP连接在10分钟后关闭。我知道可靠的session。关闭和不活动超时。我需要的是在客户端和服务器之间实现某种“始终打开的连接”。客户端一发现连接丢失就会重新连接。但在使用TCP连接时可能很难注意到某些连接丢失。我能够发明某种具有长接收和不活动超时的解决方案。如果服务器仍然在线并使用某种KeepAlive()方法连接,客户端会在短时间内“脉冲检查”服务器。我希望在我的服务契约(Contract)中没有KeepAlive()方法的情况下获得解决方案。有什么想法吗?//米罗

ios - TCP Keep-Alive 是双向的吗?

我在iPhone应用程序和NodeJS服务器之间使用tcp套接字连接来实时传输数据。当客户端连接到服务器时,我会在套接字上启用“保持事件状态”,以帮助防止因不活动而“静默”断开连接。从服务器到客户端的保持事件“ping”是单向的吗?tcp连接的客户端是否有任何固有的智能来检测ping是否停止到达? 最佳答案 如果您通过socket()在Unix套接字上使用TCPkeepalive,则服务器必须以ACK响应,否则套接字将在超时和重试达到后假定连接已断开。链接的RFC讨论了顶级保活:https://www.rfc-editor.org/

android - 如何对android中的 "keep-alive"包使用react?

我的android应用程序使用TCP套接字连接服务器,以确保连接正常,服务器在空闲时每10秒发送一次“keep-alive”消息,我可以在WireShark中抓取数据包,但在我的应用程序中,我无法在任何地方处理数据包,似乎无法用套接字读取数据包。下面是我的套接字连接的代码段。似乎“keep-alive”数据包无法用输入流读取...publicclassSocketBase{privateSocketmSocket;privateDataOutputStreamout;privateDataInputStreamin;privateSocketCallbackcallback;priva

c - 我将如何在 linux c 编程中使用 setsockopt 和 getsockopt 与 KEEP_ALIVE 来确定断开的 tcp/ip 连接?

我将如何在linuxc编程中使用setsockopt和getsockopt来确定断开的tcp/ip连接? 最佳答案 来自TCPmanpage:TosetorgetaTCPsocketoption,callgetsockopt(2)toreadorsetsockopt(2)towritetheoptionwiththeoptionlevelargumentsettoIPPROTO_TCP.以下是相关选项:TCP_KEEPCNT(自Linux2.4起)ThemaximumnumberofkeepaliveprobesTCPshoulds

php - TCP Keep-Alive PDO 连接参数

PHP的PDO(或它各自的PostgreSQLdriver)是否有启用TCPkeep-alive探测的连接配置选项likeJDBC?我遇到了一个问题,我们通过NAT建立连接,5分钟后连接断开(我无法更改),而我们在外部Postgres实例上运行的查询需要超过5分钟分钟运行,导致我们的客户端永远不会收到来自Postgres实例的响应并最终超时。 最佳答案 PDOPostgreSQL驱动程序建立在libpq客户端库之上。驱动程序允许以键/值对的形式在DSN中传递特定的libpq连接选项,其中包括TCPkeepalives选项。来自Pos

linux - 我可以使 TCP Keep-Alive 对称吗?

我有一个服务器(Ubuntu上的nginx),它有listen80so_keepalive=4m::;。我有一个Windows客户端,我用http://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx设置了TCPKeep-Alive超时。.我将服务器超时设置为4分钟,客户端超时设置为5分钟。我现在注意到,使用Wireshark捕获它们之间的数据是,4分钟后服务器发送TCPKeep-Alive,然后一分钟后(从开始开始的5分钟)客户端发送自己的TCPKeep-Alive。为什么在收到服务器Kee

linux - 在服务器中使用 TCP Keep-Alives 摆脱空闲客户端

我有一个服务器来收集来自不同客户端的Tcp数据到某个端口。我有一个场景,每当客户端创建tcp连接并保持空闲状态超过假设30分钟时,我就需要关闭连接。我了解了TCPkeepalive以跟踪对等方是否已死,并且大多数情况下我发现了在客户端使用的示例。同样,我可以在服务器端使用来轮询连接是否处于事件状态吗?此外,在linuxsysctl.conf中,有一个配置文件可以编辑这些值。这似乎是整个tcp连接在某些不活动后被破坏。我需要在一段时间不活动后销毁设备的某些连接,但不会关闭整个tcp端口连接。我正在使用ubuntu创建服务器来收集TCP连接。我可以在服务器代码中使用TCPKeep-Aliv