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

本科毕业论文-基于JAVA的聊天系统的设计与实现(5)

来源:网络收集 时间:2019-03-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

内蒙古农业大学学士学位论文 17

//接受文件

private void receiveFileHandle(Request req) { }

//发送消息

private void sendMessageHandle(Request req) {

Response res=new Response(RequestType.receiveMessage); Message message=null; try { }

User to=message.getTo(); if(to==null){

sendToAllUser(res);//如果收信人为null,则发送信息给所有人 //发送信息给to和他自己

Response res1=new Response(RequestType.individualTalk); res1.setData(message); ObjectOutputStream o=null;

Setset=ServerMainClass.userMap.keySet(); Iterator it=set.iterator(); while(it.hasNext()){ }

User u=(User)it.next(); if(u.equals(to)){

o=ServerMainClass.userMap.get(u).getOos(); break;

}else{

message=(Message)ois.readObject(); res.setData(message); e.printStackTrace(); e.printStackTrace();

} catch (IOException e) {

} catch (ClassNotFoundException e) {

}

内蒙古农业大学学士学位论文 18

}

}

try { }

o.writeObject(res1); o.flush();

e.printStackTrace();

} catch (IOException e) {

//下线

private void offlineHandle() { }

private void registerHandle() { } //登录

private void loginHandle(Request req) {

Long id=Long.parseLong((String)req.getData(\User user=dao.addUser(); try { }

oos.writeObject(user);

System.out.println(user.getId()+\oos.flush();

e.printStackTrace(); try { }

ServerMainClass.userMap.remove(user);

Response res=new Response(RequestType.offline); res.setData(user);//把下线用户发送给所有客户端 sendToAllUser(res); s.close();

e.printStackTrace();

} catch (IOException e) {

} catch (IOException e) {

内蒙古农业大学学士学位论文 19

String pwd=(String)req.getData(%user=dao.getUser(id,pwd); Response res; try {

Setusers=ServerMainClass.userMap.keySet(); Iterator iter=users.iterator(); while(iter.hasNext()){ }

res=new Response(RequestType.online); res.setData(user); oos.writeObject(res); oos.flush(); }

e.printStackTrace();

给刚上线用户发送在线用户列表

Setset=ServerMainClass.userMap.keySet(); oos.write(set.size()); Iterator it=set.iterator(); while(it.hasNext()){ }

oos.flush();

sendToAllUser(res);//通知在线用户有新用户上线

ServerMainClass.userMap.put(user, onlineUser);//保存用户信

oos.writeObject(it.next());

if(user!=null){

User u=(User)iter.next(); if(u.equals(user)){

res=new Response(RequestType.haveOnline); oos.writeObject(res); oos.flush();

return;//该用户已经在线

}

//

} catch (IOException e) {

内蒙古农业大学学士学位论文 20

}

}

}

private void sendToAllUser(Response res){ }

try { }

Collection c= ServerMainClass.userMap.values(); Iterator it=c.iterator(); while(it.hasNext()){ }

e.printStackTrace();

ObjectOutputStream o=((OnlineUser)it.next()).getOos(); o.writeObject(res); o.flush();

} catch (IOException e) {

(2)客户程序模块

客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造ObjectInputStream,ObjectOutputStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如文件传输等,服务器收到来自客户的请求后,针对不同的消息处理请求。具体的源码如下: package qq.client;

import java.awt.Color; import java.io.EOFException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import javax.swing.JOptionPane; import javax.swing.JTextPane;

import javax.swing.text.BadLocationException;

内蒙古农业大学学士学位论文 21

import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import java.net.*; import java.util.Calendar;

import qq.client.panel.UserListPanel;

import qq.client.windows.IndividualTalkWindow; import qq.entity.*;

public class ClientThread extends Thread{

@Override

private ObjectInputStream ois; private ObjectOutputStream oos; private Socket s;

private JTextPane receive; private JTextPane record; private JTextPane publicInfo; private UserListPanel userList; private SimpleAttributeSet set;

public ClientThread(JTextPane receive, JTextPane record, JTextPane }

this.receive = receive; this.record = record;

this.publicInfo = publicInfo; this.userList = userList; s=ClientMainClass.socket; ois=ClientMainClass.ois; oos=ClientMainClass.oos; set=new SimpleAttributeSet(); StyleConstants.setFontSize(set, 16); StyleConstants.setFontFamily(set,\宋体\

StyleConstants.setForeground(set, new Color(0,139,139));

publicInfo, UserListPanel userList) {

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库本科毕业论文-基于JAVA的聊天系统的设计与实现(5)在线全文阅读。

本科毕业论文-基于JAVA的聊天系统的设计与实现(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/490300.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: