📄 myserverreader.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 + -