⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myserverreader.java

📁 QQ聊天
💻 JAVA
字号:
package com.sato.server.servermanager;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;

import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.table.DefaultTableModel;

import com.sato.pub.PackType;
import com.sato.pub.QQpack;
import com.sato.pub.User;
import com.sato.server.dao.db.DBConn;
import com.sato.server.dao.factory.DAOFactory;
import com.sato.server.dao.inf.UserDAO;
import com.sato.server.dao.vo.UserBean;
public class MyServerReader extends Thread{
	private Socket socket;
	private ObjectInputStream ois;
	private ObjectOutputStream oos;
	private ServerManager servermanager;
	public MyServerReader(Socket socket, ServerManager servermanager){
		this.servermanager=servermanager;
		this.socket=socket;
		try {
			ois=new ObjectInputStream(socket.getInputStream());
			oos=new ObjectOutputStream(socket.getOutputStream());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
	public void run(){
		Object o;
		QQpack qqpack=null;
		while(true){
			try {
				//接收客户端消息
				o=ois.readObject();
				qqpack=(QQpack)o;
				if(qqpack.getType().equals(PackType.login)){
					User u=new User();
					u=qqpack.getFrom();
					String id=u.getSid();
					String password=u.getSpassword();
					QQpublic.threadMap.put(id, this);
					UserDAO userdao=DAOFactory.createUserDAO();
					QQpack pack=new QQpack();
					pack=(QQpack) userdao.checkUser(id, password);
					this.sendMessage(pack);
					if(pack.getType().equals(PackType.login_succeed)){
						this.sendOnlineList();
					}
				}
				if(qqpack.getType().equals(PackType.group_chat)){
					QQpublic.sendToAll(qqpack);
				}
				if(qqpack.getType().equals(PackType.Private_Chat)){
					String id=qqpack.getTo().getSid();
					QQpublic.sendMessage(id, qqpack);
					this.sendMessage(qqpack);
				}
				if(qqpack.getType().equals(PackType.offline)){
					String id=qqpack.getContent().toString();
					UserDAO userdao=DAOFactory.createUserDAO();
					userdao.updateOnline(id, false);
					this.fresh();
					QQpublic.close(id, null);
					this.sendOnlineList();
				}
				if(qqpack.getType().equals(PackType.update)){
					UserDAO userdao=DAOFactory.createUserDAO();
					User u=new User();
					u=qqpack.getFrom();
					String id=u.getSid();
					String password=u.getSpassword();
					QQpack pack=new QQpack();
					pack=(QQpack) userdao.checkPassword(id, password);
					QQpack pk=new QQpack();
					if(pack.getType().equals(PackType.login_succeed)){
						userdao.changPassword(id, qqpack.getContent().toString());
						pk.setType(PackType.chang_succeed);
						QQpublic.sendMessage(id, pk);
					}
					else{
						pk.setType(PackType.chang_fail);
						QQpublic.sendMessage(id, pk);
					}
					this.fresh();
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				break;
			}
		}
	} 
	public void sendMessage(Object Message){
		try {
			oos.writeObject(Message);
			oos.flush();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public void closeAll(){
		try {
			oos.close();
			ois.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	public void fresh(){
		Vector<String> columnNames = new Vector<String>();
		columnNames.add("QQ号码");
		columnNames.add("姓名");
		columnNames.add("密码");
		columnNames.add("性别");
		columnNames.add("年龄");
		columnNames.add("地址");
		columnNames.add("在线状态");
		columnNames.add("注册时间");
		Vector<Vector<String>> datas = DAOFactory.createUserDAO().selectAllemp(null,null,1);
		DefaultTableModel dataModel = new DefaultTableModel(datas, columnNames){
			public boolean isCellEditable(int row, int column) {
				return false;
			}
		};
		servermanager.getJtableonline().setModel(dataModel);
	}
	public void sendOnlineList(){
		UserDAO user=DAOFactory.createUserDAO();
		List<UserBean> list =user.getOnlineUser();
		DefaultListModel model=new DefaultListModel();
		model.addElement("群聊");
		for(Object ob:list){
			model.addElement(((UserBean)ob).getSname()+"("+((UserBean)ob).getSid()+")");
		}
		QQpack pk=new QQpack();
		pk.setType(PackType.online_list);
		pk.setContent(model);
		this.fresh();
		QQpublic.sendToAll(pk);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -