Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异步套接字连接,客户端断开连接时服务器GUI挂起(不响应)?_C#_Sockets - Fatal编程技术网

C# 异步套接字连接,客户端断开连接时服务器GUI挂起(不响应)?

C# 异步套接字连接,客户端断开连接时服务器GUI挂起(不响应)?,c#,sockets,C#,Sockets,我正在根据指南对服务器和客户端进行编码。我的服务器不断地向客户端发送一些数据 除了当一个客户端由于意外问题(通常是LAN电缆断开或断电)而断开连接时,服务器GUI挂起(没有响应)几秒钟之外,一切都很正常。然后,套接字异常在挂起几秒钟后抛出。有人坐在服务器上不舒服。 如果客户端正确断开连接,而不是因为断电,则不会导致任何挂起问题。 原因是什么?如何摆脱悬挂?使用单独的螺纹连接插座、连接等。 当任务可能需要时间时,UI线程应该保持分离 如果您对线程感到不舒服,那么可以在代码中使用Applicatio

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

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

使用单独的螺纹连接插座、连接等。 当任务可能需要时间时,UI线程应该保持分离


如果您对线程感到不舒服,那么可以在代码中使用
Application.DoEvents()
方法。尽管我不建议使用此选项。

您能给我一个链接来使用多线程c#示例吗?我使用codeguru示例,因为它包含完整的工作(服务器和客户端)源代码。你可以试试这个。您正在使用的codeguru帮助也使用多线程,因此GUI不应挂起。。。您必须知道,套接字在超时期间等待回复。确保GUI挂起或套接字连接正在等待超时。如何在1秒后超时套接字连接?如何设置该属性?我的箱子挂了几秒钟。