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

2019-03-03 14:40

内蒙古农业大学学士学位论文 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) {


本科毕业论文-基于JAVA的聊天系统的设计与实现(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:美术教案一年级上册(浙美版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: