安康学院本科生毕业论文(设计)
5.4 添加好友、删除好友、修改个人资料模块
用户点击添加好友按钮,这时会弹出一个添加好友画面,用户把自己要添加的好友写入到文本框里,客户端将其封装,然后交给服务器,将好友添加到好友表里,同时刷新客户端界面,可以实现添加好友。删除好友,将删除的好友获取后,从好友表中删除,同时刷新界面即可。修改个人资料,是将自己的新昵称、新签名、新密码获取,然后在用户表中更新,同时刷新客户端界面,便可实现设置个人信息。
添加好友的主要代码为:
public void addFriend(int num1,int num2){
String sql=\into friends values(sq_fir.nextval, \+num1+ \ dbutil.executeDML(sql); 删除好友的主要代码为:
public void deleteFri(int num1,int num2){ }
String
sql=\
from
friends
where
qqnum=\dbutil.executeDML(sql);
}
修改个人资料的代码为:
public void updateInfo(String name,int num,String desc ,String pass){
String sql1=\qquser set qqdesc='\where qqnum=\
dbutil.executeDML(sql1); sql=\
qquser
set
qqpass='\
where
String
qqnum=\
dbutil.executeDML(sql); sql2=\qqnum=\
}
dbutil.executeDML(sql2);
qquser
set
qqname='\
String
20
第五章 详细设计
5.5 发送和接收消息模块 5.5.1 聊天流程
用户登录成功后,双击好友,打开聊天面板,并填写聊天内容。消息先是由用户发送给服务器,然后由服务器转发给好友,在这里是有服务器获取到好友的ip,然后服务器将分装好的消息发送给这个ip和这个端口的好友,头像闪通,好友通过接收消息的端口接收消息,就可以实现两个用户之间的聊天。聊天流程图如图9。
获取到好友的ip
填写消息内容 好友接收消息 图9 聊天流程图
21
双击好友 开启服务器消息线程 开启客户端消息线程
打开对话框 服务器 安康学院本科生毕业论文(设计)
5.5.2发送和接收消息
登陆成功后,对每一个(FriendPanel)添加双击事件类(DoubleClickHandler), 双击对方头像后,将会出现和对方的一个对话框类(SessionFrame),并对此类的按钮添加一些监听事件,通过这个点击获取到对方的信息。发送消息主要是通过socket=new Socket(ip,port),将一个消息发送给这个ip和端口的好友。当然在此之前还要判断好友是否在线,如果在线,双击这个头像,弹出对话框。
写一个类(MesListener)用来接收消息,但这里必需用一个相同的端口接收消息,同时也是将接收到的消息转换成文字流。这个时候先判断这个消息对话框是否打开,如果这个会话框是打开的,那么显示消息,显示消息主要是将回话框里的文本文档用append添加进来。如果这个回话框没有打开,那么必须先闪动头像,把消息加入消息列表。
发送消息的方法代码为:
public static void sendMes(MesModel mes, String ip, int port) { }
try { }
socket = new Socket(ip, port); objout
objout.writeObject(mes);
// TODO Auto-generated catch block e.printStackTrace();
// TODO Auto-generated catch block e.printStackTrace(); closeAll();
=
new
ObjectOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
} catch (IOException e) {
} finally {
客户端检查消息对话框是否打开、以及将消息加入消息列表的主要代码如下。
MesModel mes = (MesModel) objin.readObject();
22
第五章 详细设计
int friQQnum=mes.getQqnum();
for(FriendPanel fp : win.getFrisPanel().getFriPanList()){
if(fp.getFriModel().getQqnum()==friQQnum){ if(fp.getSession().isVisible()){
fp.getSession().getJtaG().append(MesUtil.getMesInfo(mes, fp.getFriModel().getQqname()));} else{
fp.getFsPane().getMesList().add(mes); fp.setMesPic();
}
}
} break;
5.6 关闭客户端
用户点击自己的客户端上的关闭按钮,此时需通知服务器下线,然后服务删除该用户,同时在服务器端,重新显示在线用户,并发送给登陆用户其在线好友,通知下线信息,即时刷新界面。关闭客户端流程图10。
服务器删除该在线用户
服务器端重新显示在线 图10 关闭客户端
好友刷新界面 通知登陆用户在线好友 关闭 删除登陆用户代码的主要方法为:
23
安康学院本科生毕业论文(设计)
public void unLoginUser(int qqnum) {
}
String sql = \dbutil.executeDML(sql);
24
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究毕业论文终稿1-09级-电子信息程(2)班-李毅113 (7)全文阅读和word下载服务。
相关推荐: