送给服务器当服务器端接受到客户端发送来的请求后,会将客户端的资料储存在一个新的集合里,来满足其功能要求。212客户端当客户端建立于服务器端的连接后,就可以实现聊天的功能了。任何一个客户端需要跟另一个客户联系时,客户端会将发送的内容、目标地址的IP地址和端口号一起发送给服务器,然后服务器会在socket对象中扫描出该目的地址并将客户端发送的内容再转发给目的地址。213其他细节在各个组件和容器中需要有事件处理的地方,比如关闭对话框,确定和取消等,要事先设置事件监听,和事件处理。由于允许使用多个客户端,所以在各个套接字在接发信息时要用多线程,使接发信息的类继承Tread,实现多线程设计。为了不使客户端和服务器端的程序代码过长,把各个类封装在不同的文件中,并都声明为公共类(public),这样可以在同一个包内访问。委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用IfElseSwitch语句,同时使得程序具有更好的可扩展性。通过委托,实现了客户端能够不停地接收服务器发送来的信息,使得信息能够及时显示。
22总体框架
程序流程图
3
f开始
客户端显示错误信息是否与服务器连接重新输入登陆接收聊天信息
服务器开启
接收客户端信息
发送在线好友信息
信息是否正确
显示聊天信息
更新数据库
客户端登陆信息
发送到服务器
发送退出请求客户端聊天信息
显示好友现在信息
选择好友退出
发送聊天信息结束
程序分析图
操作:④⑤服务器客户端操作:⑥⑦
②
③
客户端操作:⑥⑦
3开发过程
4
f31主要模块的详细设计
311登录客户端首先登录,用户输入登录信息,点击“登录”按钮,如果服务器没有开启,显示“无法连接”的提示信息,如服务开启了,客户端根据接收的信息,调用数据库,查看数据库中是否存在此信息,如果不存在,显示出错信息;信息存在,向服务器发送登录信息,服务器接收信息后判断发现是登录信息,于是向数据库写入信息,此时写入的信息中的离线时间为空,客户端接收信息,同时调用数据库获得在线好友信息并回应给对应的客户端。客户端接收服务器发来的信息,获得该用户的在线好友信息,进入聊天页面,同时将在线好友信息显示到好友列表中显示。312聊天通信客户端选择好友,在信息框中输入聊天信息,点击“发送”按钮时,首先在聊天框显示聊天内容,同时将信息送往服务器r