(接上文)
完善和修补:
基于修正通过测试所发现的bug,和功能的完善,我们有对客户端进行了一定的改动,主要体现在:
·对客户端进行更好的异常处理,以防止由于服务器异常中断而导致客户端仍不端请求服务器所造成的死锁。
·增加了说话对象和悄悄话功能(在客户端实现)
·增加了登录窗体,可以登陆到指定的房间并对服务器进行配置(参看下面服务器的改进)
另外在服务器端我们也做了部分的改进,主要完成了上次没有实现的功能,主要体现在:
·完成了服务器端任意配置并开放多个话题房间的功能(一个tchatroom的实例对应着一个话题房间)
·在服务器端的每个房间维护一份登录进房间的人员列表,供客户端调用
·完善了服务器端的ui,并在服务器端实现为每个用户的登录和登出进行向客户系统公告的功能,并在服务器端限制登录的人数和进行重名判断
我们来看看主要的改进部分的代码变化情况,首先是服务器端的接口:
ichatmanager = interface(idispatch)
['{e7cd7f0d-447f-497a-8c7b-1d80e748b67f}']
……
function getroomlist: istrings; safecall;//客户端获得服务器端的房间列表
function roomcanlogin(roomid: integer; const username: widestring): integer; safecall;