silverlight - 防止许多未关闭的Silverlight套接字连接出现堆栈溢出

标签 silverlight sockets

我在网上搜索了我的问题的解决方案,但到目前为止没有任何结果。
我用Silverlight应用程序,SocketServer和SocketClient(带有Silverlight应用程序)进行了测试。
在 Debug模式下,两个应用程序都运行,当我关闭浏览器窗口时,我很高兴看到服务器上触发了一个事件,并且套接字连接自动关闭。
大谜团开始了。那到底是怎么回事?
按下电源按钮关闭客户端计算机该怎么办?
我的事件是否仍会触发,或者我会因为许多未关闭的Socket连接而在服务器上出现堆栈溢出?

最佳答案

在服务器上,您实际上应该在轮询套接字连接,以查看它们是否仍然有效。发送“您还活着”消息。

通常,一旦套接字连接丢失,通过套接字向下发送数据将导致其掉落,并发生异常。

不幸的是,计算机通常无法检测到套接字是否丢失了链接,除非您尝试对其进行操作。它唯一知道的是客户端(或服务器)何时发送“关闭连接”命令(通常在.NET中通过Socket.Close()方法完成)。

套接字是那样的痛苦。

关于silverlight - 防止许多未关闭的Silverlight套接字连接出现堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1476957/

相关文章:

java - 套接字复位是什么原因

Silverlight Toolkit - AutoCompleteBox 在哪里?

wpf - x :Key and x:Name之间的区别

silverlight - Silverilight 中的语言解析器

Delphi 2010 - 套接字端口 119 不起作用

c# - 哪个本地 ip 连接到远程 ip?

c# - 将 WCF Ria 服务应用程序部署到 IIS6 时遇到问题 - EndpointNotFoundException 服务 Web-AuthenticationService.svc 不存在

wpf - 在 WinRT 中更改插入符号颜色?

sockets - 如何设置 std::net::UdpSocket 超时?

python - 尝试从低级套接字服务器发送 HTTP 响应