用java设计一个c⼀s通信系统。实现下面功能:网络时间同步服务:服务器可以提供当前时间,发送给客户端。

2025-04-04 11:59:02
推荐回答(1个)
回答(1):

是的,最好是这样做,

你需要有两个队列,发送队列来接收队列。(vector,arraylist,hashtable或者Object[]都可以)

在程序设计中要时刻记得MVC模式, 设计出来的程序模块必须专业化, 绘图的就让它绘图,专业绘图,别让他处理逻辑, 联网的就专业联网,别让我去绘图。

所以,网络线程不要用来干别的事情,一旦程序中有消息要发送就立即放到发送消息队列中,在队列中排队,而网络线程干的事情就是按先来后到的原则把队列中的消息一个个发向服务端。
反过来,每次收到服务端发过来的消息, 网络线程不要去干涉它,也不要去处理它,而是把它放在接收队列中就不用管它了,自己又去干自己的专业活——联网收发。 而我们的程序逻辑就会去每隔一段时间去看看接收队列中是否己经有了消息来了,有了也按先来后到原则一个个处理,处理的结果如果需要更新界面的话,就通知专业绘图组件来绘图。

这样的一个系统,每个人都有自己的权力和职责,各司其位,互不干扰。 这才是MVC的好系统。 一旦产生错误和发现问题,我们就可以快速地定位问题出在哪里。 比如图画错了,我们就直接找绘图部门就行了,而不要去找联网部门了。那不是他们的责任。