第一范文网 - 专业文章范例文档资料分享平台

毕业论文终稿1-09级-电子信息程(2)班-李毅113 (7)

来源:用户分享 时间:2020-06-30 本文由﹌林间清风 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

安康学院本科生毕业论文(设计)

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下载服务。

毕业论文终稿1-09级-电子信息程(2)班-李毅113 (7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1106938.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top