问题标签 [disconnect]
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.
delphi - Indy 在关闭套接字时抛出多个异常。如何进行干净的自动重新连接?
我有一个 Delphi 6 应用程序,它使用 Indy 9 组件来维护与外部设备的持久 IdTCPConnection。有时我想断开连接,然后重新连接到设备。我发现当我这样做时,Indy 会抛出多达 3 个单独的异常。这使得开发一个干净的重新连接策略有些混乱,因为 Indy 组件位于后台线程上,我不想打破线程 Execute() 循环。
在我尝试重新连接之前,有什么好的或干净的方法来吸收 3 个例外?我看到的 3 个异常是,按出现的顺序,EIdClosedSocket、EIdConnClosedGracefully、EIdSocketError(LastError = WSAECONNABORTED)。在尝试重新连接之前,我想等到与关闭套接字相关的所有异常都已经传播,但我不确定如何构建我的代码循环来做到这一点。
redis - Redis 客户端广播问题(在 Socket.IO 的上下文中)
所以我读过一些关于缩放 Socket.IO 的文章。由于各种原因,我不想使用内置的 Socket.IO 缩放机制(主要是它似乎效率低下,因为它向 Redis 发布了更多的东西,然后从我的角度来看需要)。
所以我想出了这个简单的想法:
每个 Socket.IO 服务器创建 Redis 发布/订阅/存储客户端,连接到 Redis 并订阅一个频道。现在,当我想广播数据时,我只需将其发布到 Redis,所有其他 Socket.IO 服务器都会获取它并将其推送给用户。
但是有一个问题(我认为这也是 Socket.IO 内置机制的问题)。假设我想知道所有连接用户的数量。至少有两种方法可以做到这一点:
服务器 A 发布
give_me_clients
到 Redis。然后每个 Socket.IO 服务器计算连接数并发布number_of_clients
。服务器 A 抓取这些数据,将其组合起来并发送给客户端。每当用户连接/断开服务器时,Redis 中的每个服务器都会更新
number_of_clients_for::ID_HERE
。然后服务器 A 只是获取数据并组合它。可能效率更高。
但是,这些解决方案存在问题:
服务器 A 不知道其他服务器。所以他不知道什么时候该停止听
number_of_clients
。可以通过让服务器 A 了解其他服务器来修复它:每当服务器连接到 Redis 时,他就会发布new_server
(服务器 A 抓取数据并将其存储在内存中)。但是,当 Redis - Socket.IO 连接中断时该怎么办?Redis 有没有办法通知客户端其中一个客户端已断开连接?其实和上面一样。当 Socket.IO 服务器崩溃时如何清除
number_of_clients
数据?
所以真正的问题是:Redis 是否可以通知(发布到 chanel)客户端与其中一个的连接刚刚结束?
windows - 如何使用 Windows IOCP 检测断开连接 (RST/FIN)?
如何使用 Windows IOCP API 确定 TCP 连接是否被对等方(通过发送 RST 数据包或类似方法)断开?具体来说,我无法发送或接收任何数据——没有重叠的操作正在进行。我只想得到一个异步通知。有没有办法做到这一点?
c# - 显示、连接和断开无线网络
我希望有人能给我你的帮助......(任何示例代码将不胜感激)
我打算做的是在无线网络检测到我的计算机的列表框中显示。
(连接和断开所选网络)
我打算在 C# 2010 中做到这一点
谢谢。
java - 如何避免 JDBC 驱动程序断开连接时出现异常?
我使用 JDBC 连接到 Oracle 数据库。有时当我尝试断开连接时,我收到错误:
这是因为网络连接中断。如何更好地处理这个异常?谢谢。
php - PHP - 在客户端断开连接时杀死 exec
我的 C++ 应用程序有非常原始的 Web 前端。客户端(网络浏览器)进入 php 站点并用参数填写表单。比(在提交后)php 调用exec并且应用程序完成它的工作。应用程序可以工作超过一分钟,并且需要大量的 RAM。
是否有可能检测到与客户端断开连接(例如关闭 Web 浏览器中的选项卡)。我想这样做,因为断开连接后客户端将无法看到计算结果,所以我可以杀死应用程序并释放服务器上的一些 RAM。
感谢您的任何帮助或建议。
php - 几分钟后“MySQL 服务器已消失”
我在查询中有 2 个表,旨在显示/通过电子邮件发送已保存的用户搜索信息:用户和愿望清单。
搜索信息包含书名等。
我有第一个查询,旨在将所有在愿望清单表中有记录的用户放入一个数组中。
然后使用 foreach 循环,通过第二个查询,获取每本书的标题并在各个站点上运行搜索,并将该信息保存到屏幕或电子邮件中。
第一次运行大约需要 3 分钟来组装第一个用户的信息,然而,在显示此信息后,我看到可怕的“MySQL 服务器已消失”。
根据http://dev.mysql.com/doc/refman/5.0/en/gone-away.html - 这不应该发生得这么快。
第二个查询的代码很简单:
在为该用户编译信息后,我有以下内容来关闭循环并结束连接。
我尝试了一些我在网上找到的其他建议,包括:
但没有什么能解决问题。
有任何想法吗?
非常感谢。
linux - Linux命令断开机器
有时我们需要测试某些机器是否断网的场景。即放弃两台机器之间的通信。Linux 提供了一种模拟这种情况的方法。相同的命令是什么?
我知道的一个命令是
把那个带回网络
有没有更好的方法来做到这一点?
c# - 客户端断开连接时检测并写入
我正在用 C# 编写一个简单的客户端/服务器应用程序。如您所见,代码中有 if(cSocket.Connected) 标记,我想要类似的东西...如果 cSocket 断开连接...我将给出代码,您可以从标题和我的解释中理解我的问题.. .
这是代码;
服务器;
感谢您的帮助:)
c# - 如果没有发送数据,TCP 套接字会在一段时间后自动关闭吗?
我有一个客户端服务器的情况,客户端打开一个到服务器的 TCP 套接字,有时很长一段时间会过去而没有数据在它们之间发送。我遇到了服务器尝试向客户端发送数据的问题,并且似乎成功,但客户端从未收到它,并且几分钟后,客户端似乎断开连接。
我是否需要每隔一段时间发送某种保持活动数据包?
编辑:要注意,这是同一台计算机上的同行。该计算机位于 NAT 后面,该 NAT 将使用的一系列端口转发给该计算机。与服务器连接的客户端通过 DNS 打开连接。即它使用mydomain.net & 端口连接。