【问题标题】:Async socket connection, server GUI hangs(not responding) when client disconnect?客户端断开连接时,异步套接字连接,服务器 GUI 挂起(无响应)?
【发布时间】:2014-02-05 15:55:23
【问题描述】:

我正在根据this 指南编写服务器和客户端。我的服务器不断地向客户端发送一些数据。

当一个客户端由于意外问题(通常是 LAN 电缆断开或断电)断开连接时,除了服务器 GUI 挂起(没有响应)几秒钟外,一切都很好。然后在挂起几秒钟后抛出套接字异常。坐在服务器计算机上的人不舒服。 如果客户端正确断开连接,则不会导致任何挂起问题,而不是因为停电。 原因是什么?如何摆脱这种悬垂?

【问题讨论】:

    标签: c# sockets


    【解决方案1】:

    为套接字、连接等使用单独的线程。 当任务可能需要时间时,UI 线程应保持独立。

    如果对线程感到不舒服,那么您可以在代码中使用Application.DoEvents() 方法。虽然我不推荐使用这个。

    【讨论】:

    • 你能给我工作多线程 c# 示例的链接吗?我使用了 codeguru 示例,因为它包含完整的工作(服务器和客户端)源代码。
    • link 你可以试试这个。您正在使用的 codeguru 帮助也使用多线程,因此 GUI 不应该挂起......您必须知道套接字在超时期间等待回复。确保是 GUI 挂起或套接字连接正在等待超时。
    • 如何在 1 秒后超时套接字连接?如何设置该属性?我的情况它挂了几秒钟。
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2015-06-21
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多