问题标签 [disconnection]

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.

0 投票
2 回答
236 浏览

java - 关闭客户端后通过 SocketChannel 向客户端发送数据

我有一个客户端和一个服务器应用程序,其中客户端发送一个数据字节,表示用户已关闭客户端窗口并终止了客户端程序。问题是服务器可能会在丢弃该客户端之前向该客户端发送最后一个通知。如果服务器在阻塞模式下使用 SocketChannel 的 write 方法,它会无限期地阻塞还是被忽略?我应该让客户端在断开连接之前等待“断开连接确认”吗?

0 投票
0 回答
2724 浏览

delphi - Indy TIdTCPServer 和断开连接

我有一个小问题(我希望它很小)断开服务器 - 我的意思是 - 仅在我想将它与服务器应用程序断开连接时(server.active = false)。这是我的简单代码:

它只能用于向客户端发送数据,因此我在 onconnect 过程中只读取了一条数据行 - 它包含登录名。

在我的代码中发送数据的过程看起来像(很好吗?):

看起来效果很好-我的意思是。但是当我想通过 SERVER.active:=false 禁用服务器时,应用程序会冻结吗?我试图释放客户等,但它在我的错误代码中不起作用。

有人可以帮助我并给我建议如何停止此代码的服务器吗?

阿尔蒂克

0 投票
4 回答
59399 浏览

c - Linux Socket:如何在客户端程序中检测断开的网络?

我正在调试基于 ac 的 linux 套接字程序。正如网站上提供的所有示例一样,我应用了以下结构:

当删除服务器关闭其服务器程序时,我可以检测到断开连接。但是如果我拔下以太网电缆,发送函数仍然返回正值而不是 -1。

假设我无法更改服务器端,如何检查客户端程序中的网络连接?

0 投票
1 回答
958 浏览

c++ - 处理套接字断开连接。升压/Winsock

正如标题所暗示的,我使用过winsock 和boost 插座。我在检测断开连接时遇到了难以置信的困难。

首先,我知道可以通过以下方式发现断开连接:

  1. recv() / async_read() 返回套接字错误或 0。
  2. 发送() / async_write() ... ... ...
  3. 客户端是否手动关闭,是否被中断/程序关闭 - 无论如何。

所以这里是问题场景:

我用 closesocket() 关闭了我的连接。客户端检测到断开连接 - 一切正常。

我关闭程序 - 客户端无法检测到断开连接的可能性为 50/50。由于某种原因,我的重叠 IO WSARecv() 不能保证检测到。

我杀死了这个过程。检测的机会增加到 80%。But for the rest of the 20% - here's what's bothering me. I implemented a keep-alive ping mechanism which sends data to the server. Even if I killed the program - the server is still async_writing() to the connection - even though it's not detected or dead.

这是我必须忍受的吗?我有点迷失了,因为我尽我所能检测断线……但它们仍然是个问题。

0 投票
1 回答
2482 浏览

azure - 站点到站点 Ipsec Openswan 和 Azure 每小时断开连接

我的 Openswan 有一些问题。

我在 aws 上使用 openswan (ubuntu) 作为集线器 vpn 将我的办公室连接到 azure。

与办公室的联系没有问题。

与 Azure 的连接有效,但每小时断开连接,我必须重新启动 ipsec 服务才能再次连接。

我的 ipsec.conf :

我的 openswan 到 azure conf :

我的 auth.log 在断开连接点:

你能帮我避免那些断线吗?

非常感谢 !

0 投票
2 回答
6144 浏览

android - BLE芯片正在计算时Android低功耗蓝牙连接超时

我的 BLE 应用程序需要在服务器端(BLE 芯片)进行计算,这需要时间并导致断开连接。

流程是这样的:

1- Android 手机将特征值写入 BLE 芯片。2- 芯片评估该值并开始计算。3- 计算开始后连接很快丢失。

我可以应用什么解决方案来防止断开连接?我有两个解决方案:

1- 更改连接间隔:目前 Android 使用 7.5 毫秒作为连接间隔。由于 BLE 芯片上的计算需要时间,因此在计算过程中不会发送或接收数据包。增加连接间隔将减少丢失数据包的数量。但是,不能保证 Android 手机会接受新的连接参数。

2-在单独的线程中运行计算:我不认为BLE芯片的SDK支持多线程,这样当计算过程进行时,它会继续接收和发送数据包并防止断开连接。我使用 CSR 芯片,我认为它不支持。

如果我的观点有误,请纠正我。

您还有其他解决问题的建议吗?

提前致谢。

0 投票
0 回答
1236 浏览

qt - 使用 Qt 和 QSqlDatabase 断开连接后重新连接到数据库的正确方法

断开连接时使用 Qt4 重新连接到数据库的正确方法是什么?

我在 ODBC 上使用 Sql Server 2012。如果我使用 SELECT 1 查询检测到断开连接,然后执行

我在尝试使用 next() 方法的其他打开的 SqlQueries(在驱动程序中)收到异常。

如果我对数据库什么都不做,只尝试使用同一个数据库执行新查询 - 任何 exec() 都会返回 false 并带有警告“连接错误”。

0 投票
1 回答
1400 浏览

java - javax.comm.portinuseexception 当前拥有的端口

我制作了一个通过 rs232 连接到设备的程序。在我关闭连接并尝试从同一个应用程序再次重新打开它之前,这一切都很好。我得到以下异常:

当我完全关闭我的应用程序并重新启动它时,我能够再次连接到端口。但是我需要在不关闭整个应用程序的情况下再次使用该端口。我试图关闭我的端口,如下所示,但它没有按我的意愿工作:

我应该或可以如何关闭我的端口以避免此异常?

0 投票
0 回答
81 浏览

ios - 游戏中心自发断开连接的任何解决方案?

已经有各种其他线程涉及这个主题,并且提供了许多解决方案 - 没有一个真正有效,所以我想我会重新开始。

这个问题在 iOS 6 上开始出现,并在 iOS 8 中变得长期存在,即 Game Center 会无缘无故地自动断开玩家连接。在我的游戏中,我可以让 2 到 4 名玩家以每秒 10 到 20 个数据包的相当好的速率互相发送数据。游戏运行流畅,没有数据丢失或延迟的迹象。然而突然之间,一个玩家会突然停止接收或发送数据,然后 20 秒后它会超时并与游戏断开连接。这通常会触发级联,导致其余玩家在没有警告的情况下突然断开连接。

在另一个线程中,有人认为问题是由可靠的数据包引起的——当一个人迷路时,Game Center 会断开该玩家的连接。不是这种情况。我试着让我所有的数据都不可靠,但这并没有什么不同。其他人则认为这是由于在路由器上启用了双 NAT 造成的 - 也不是这种情况。

通常,这个问题是零星的,但在我们正在处理的新游戏中,它 100% 发生在 3 人或 4 人比赛中,偶尔会发生在 2 人比赛中。如果所有设备都在我办公室的 WiFi 上,就不会发生这种情况。但是,如果我将一台设备放在蜂窝网络上,它每次都会失败。或者,如果办公室里有两台设备使用 WiFi,而另外两台设备在全国各地使用 WiFi,它就会失败。

游戏中心显然有问题,但这绝对是要了我的命。有没有人在弄清楚为什么 Game Center 会自发地失去与玩家的联系方面取得任何进展,即使一切看起来都很好?

0 投票
5 回答
11954 浏览

android - Android自动检查互联网连接

你好世界如何始终检测我是否自动连接或断开互联网。示例:当我连接并关闭 3G 或 wifi 时,吐司说我已断开连接,在我激活 3G 或 wifi 3 秒后吐司告诉我我已连接。

我使用这种方法,但它告诉我应用程序启动时的连接状态,而不是应用程序导航期间的连接状态。

请帮帮我