GUI网络编程--服务器每连接一个客户端就显示其信息
2014-06-23 22:12
369 查看
我遇到的问题是:
这里有甲、乙、丙3个客户端,一个服务端。
1. 当甲连接到服务端时,无法在服务端的GUI上显示信息,只能在控制台显示信息。
2. 当3个客户端都连接完后,服务端的GUI才显示这3个客户端的相关信息
分析原因:
(1). 传统的GUI应用程序通常都是单线程的。
(2). 如果在事件线程中执行的任务都是短暂的,那么界面的响应灵敏度就较高,因为事件线程能够很快地处理用户的动作。
然而,如果事件线程中的任务需要很长的执行时间,例如对一个大型文档进行拼写检查,或者从网络上获取一个资源,
那么界面的响应灵敏度就会降低。如果用户在执行这类任务时触发了某个动作,那么必须等待很长时间才能获得响应,
因为事件线程要先执行完该任务。更糟糕的是,不仅界面失去响应,而且即使在界面上包含了“取消”按钮,也无法取消
这个长时间执行的任务,因为事件的线程只有在执行完该任务后才能响应“取消”按钮的点击事件。然而,如果将这个长
时间运行的任务放在一个单独的线程中运行,那么事件线程就能及时地处理界面事件,从而使用户界面具有更高的灵敏
度。
处理方案:
将这个长时间运行的任务放在一个单独的线程中运行。
即,将对文档进行拼写检查这个任务放到一个单独的线程中。也就是,GUI界面处理多线程任务时,必须自定义一个线程,
用来专门处理任务。
这个问题发生于那些地方?
一个服务端多个客户端(我模拟时遇到的问题)
这里有甲、乙、丙3个客户端,一个服务端。
1. 当甲连接到服务端时,无法在服务端的GUI上显示信息,只能在控制台显示信息。
2. 当3个客户端都连接完后,服务端的GUI才显示这3个客户端的相关信息
分析原因:
(1). 传统的GUI应用程序通常都是单线程的。
(2). 如果在事件线程中执行的任务都是短暂的,那么界面的响应灵敏度就较高,因为事件线程能够很快地处理用户的动作。
然而,如果事件线程中的任务需要很长的执行时间,例如对一个大型文档进行拼写检查,或者从网络上获取一个资源,
那么界面的响应灵敏度就会降低。如果用户在执行这类任务时触发了某个动作,那么必须等待很长时间才能获得响应,
因为事件线程要先执行完该任务。更糟糕的是,不仅界面失去响应,而且即使在界面上包含了“取消”按钮,也无法取消
这个长时间执行的任务,因为事件的线程只有在执行完该任务后才能响应“取消”按钮的点击事件。然而,如果将这个长
时间运行的任务放在一个单独的线程中运行,那么事件线程就能及时地处理界面事件,从而使用户界面具有更高的灵敏
度。
处理方案:
将这个长时间运行的任务放在一个单独的线程中运行。
即,将对文档进行拼写检查这个任务放到一个单独的线程中。也就是,GUI界面处理多线程任务时,必须自定义一个线程,
用来专门处理任务。
这个问题发生于那些地方?
一个服务端多个客户端(我模拟时遇到的问题)
相关文章推荐
- Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)
- 网络编程_服务器给客户端一个反馈案例
- Linux C语言编程-Linux网络通信--Linux上使用套接字(socket)来处理信息---编写一个单进程非阻塞多客户的套接字客户端
- 连接主机Java网络编程(一)- 一个简单的服务端/客户端应用程序
- Android网络客户端编程,HttpGet类和HttpPost类使用详解,连接php-mysql服务器
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- 网络编程-客户端键盘录入_服务器显示控制台
- java网络编程----------Socket实现客户端和服务器的连接
- Java 网络编程 中的 服务器与客户端的 连接!
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- linux下socket编程实现一个服务器连接多个客户端
- 网络编程 一个服务器同时为多个客户端服务
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- JAVA_ 网络编程,写一个可以上传文件的服务器和客户端
- java网络编程基于TCP的多客户端连接服务器
- 网络编程_关于多个客户端上传到一个服务器的思考
- Java基础知识强化之网络编程笔记07:TCP之服务器给客户端一个反馈案例
- java 网络编程 多个客户端连接服务器
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- 请教:C#网络编程相关的知识,建立socket服务器时向客户端连接,就建立不了了?