2014-02-05 64 views
1

我正在编写基于this指南的服务器和客户端。我的服务器不断发送一些数据给客户端。异步套接字连接,服务器GUI在客户端断开连接时挂起(未响应)?

一切正常,除了服务器图形用户界面挂起(没有响应)几秒钟当其中一个客户端断开连接意外问题(通常LAN电缆断开或断电)。然后套接字异常在几秒钟后抛出。坐在服务器计算机上的人不舒服。 如果客户端正确断开连接,不会造成任何挂起问题,而不是因为停电。 原因是什么?如何摆脱那挂?

回答

0

为套接字,连接等使用单独的线程。 当任务需要时间时,UI线程应该保持分离。

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

+0

你可以给我链接工作多线程的C#示例?我使用了codeguru示例,因为它包含完整的工作(服务器和客户端)源代码。 – user3000743

+0

[链接](http://www.codeproject.com/Articles/14346/A-Simple-Multi-Threaded-Server-Client-Instant-Mess)你可以试试这个。您所使用的codeguru帮助也使用多线程,因此GUI不应该挂起...您必须知道套接字等待超时期间的回复。确保GUI挂起或套接字连接正在等待超时。 –

+0

如何在1秒后超时套接字连接?如何设置该属性?我的情况下挂了几秒钟。 – user3000743

相关问题