📄 serverreceivethread.java
字号:
HashMap updowndata = new HashMap();
updowndata.put("COMPANY", getCompany());
SrcPackage downlinePackage = new SrcPackage() ;
downlinePackage.setData(updowndata);
downlinePackage.setFrom(SrcPackage.SERVER_ID);
downlinePackage.setTo(revPackage.getFrom());
downlinePackage.setType(SrcPackage.DOWNLINE_TYPE);
downlinePackage.setTomeno(revPackage.getTomeno());
//群发下线包
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
if (!srt.getUno().equals(revPackage.getFrom())){
if (srt.isAlive()){
//发送下线包
try {
srt.getOos().writeObject(downlinePackage);
srt.getOos().flush();
Thread.sleep(500);
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
}
}
}//密码修改包
if (revPackage.getType().equals(SrcPackage.SET_PWD_TYPE)) {
boolean tag = false;
IUserDAO usrdao = new ImplementUserDAO();
List userlist = new ArrayList();
TUser user = new TUser();
userlist = usrdao.select(revPackage.getFrom(),"","","");
user.setUNO(((String)((List)(userlist.get(0))).get(0)).trim());
user.setUNAME(((String)((List)(userlist.get(0))).get(1)).trim());
user.setUTERM(((String)((List)(userlist.get(0))).get(2)).trim());
user.setUSEX(((String)((List)(userlist.get(0))).get(3)).trim());
user.setUICONID(((String)((List)(userlist.get(0))).get(4)).trim());
user.setUAGE(((String)((List)(userlist.get(0))).get(5)).trim());
user.setDNO(((String)((List)(userlist.get(0))).get(13)).trim());
user.setUPHONE(((String)((List)(userlist.get(0))).get(7)).trim());
user.setUADDRESS(((String)((List)(userlist.get(0))).get(8)).trim());
user.setULASTLOGINTIME(((String)((List)(userlist.get(0))).get(10)).trim());
user.setUREGDATE(((String)((List)(userlist.get(0))).get(9)).trim());
user.setULOGINCOUNT(((String)((List)(userlist.get(0))).get(11)).trim());
user.setUISONLINE(((String)((List)(userlist.get(0))).get(12)).trim());
if(usrdao.del(revPackage.getFrom())){
user.setUPASSWORD(revPackage.getTomeno());
tag = userdao.add(user);
//发确认包
if (tag){
okpwdPackage = new SrcPackage();
okpwdPackage.setFrom(SrcPackage.SERVER_ID);
okpwdPackage.setTo(revPackage.getFrom());
okpwdPackage.setData(null);
okpwdPackage.setType(SrcPackage.OK_PWD_TYPE);
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
if (srt.getUno().equals(revPackage.getFrom())){
if (srt.isAlive()){
//发送下线包
try {
okpwdPackage.setTomeno("Y");
srt.getOos().writeObject(okpwdPackage);
srt.getOos().flush();
Thread.sleep(200);
System.out.println("ok");
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
}
}
}else{
// 群发下线包
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
if (srt.getUno().equals(revPackage.getFrom())){
if (srt.isAlive()){
//发送下线包
try {
okpwdPackage.setTomeno("N");
srt.getOos().writeObject(okpwdPackage);
srt.getOos().flush();
Thread.sleep(200);
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
}
}
}
}
}
// 文件询问包
if (revPackage.getType().equals(SrcPackage.FILESEND_TYPE)) {
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
if (srt.getUno().equals(revPackage.getTo())){
System.out.println("server sended file");
if (srt.isAlive()){
//发送下线包
try {
srt.getOos().writeObject(revPackage);
srt.getOos().flush();
Thread.sleep(200);
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
}
}
}
//文件确认包
if (revPackage.getType().equals(SrcPackage.FILEREV_TYPE)) {
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
if (srt.getUno().equals(revPackage.getFrom())){
System.out.println("server rev file");
if (srt.isAlive()){
//发送下线包
try {
srt.getOos().writeObject(revPackage);
srt.getOos().flush();
Thread.sleep(200);
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
}
}
}
//文件结束包
if (revPackage.getType().equals(SrcPackage.FILEEND_TYPE)) {
Iterator it = totalThread.iterator();
while(it.hasNext()){
ServerReceiveThread srt = (ServerReceiveThread)it.next();
// if (srt.getUno().equals(revPackage.getTo())){
if (srt.isAlive()){
//发送下线包
try {
srt.getOos().writeObject(revPackage);
srt.getOos().flush();
Thread.sleep(200);
System.out.println("server end file success");
} catch (IOException e) {
// TODO 自动生成 catch 块
break;
}
}
// }
}
}
} catch (IOException e) {
// TODO 自动生成 catch 块
// e.printStackTrace();
// managerpanel.getMymanlistener().stopServer();
// JOptionPane.showMessageDialog(null, "服务器已关闭,为保证所有用户运行正常,请重新启动服务器!", "提示",JOptionPane.INFORMATION_MESSAGE);
tag=true;
break;
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
tag=true;
break;
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
tag=true;
e.printStackTrace();
break;
}
}
}
/**
* 包装公司类
* @return
*/
static public TCompany getCompany(){
TCompany company = new TCompany();
company.setName("博洋教育");
List luser = null;
List ldept = new ArrayList();
ldept = deptdao.select("",""); //取出部门
TDepartment[] dep = new TDepartment[ldept.size()];
for( int j = 0 ;j < ldept.size() ;j++){
dep[j] = new TDepartment();
dep[j].setDno((String)((List)ldept.get(j)).get(0));
dep[j].setDname((String)((List)ldept.get(j)).get(1));
dep[j].setDsaffiche((String)((List)ldept.get(j)).get(2));
luser = new ArrayList();
luser = userdao.select("","",dep[j].getDno(),"");//取出用户
TUser[] user = new TUser[luser.size()];
for(int k = 0 ;k<luser.size();k++){
user[k]= new TUser();
user[k].setUNO((String)((List)luser.get(k)).get(0));
user[k].setUNAME((String)((List)luser.get(k)).get(1));
user[k].setUTERM((String)((List)luser.get(k)).get(2));
user[k].setUICONID((String)((List)luser.get(k)).get(4));
user[k].setUISONLINE((String)((List)luser.get(k)).get(12));
user[k].setUPASSWORD((String)((List)luser.get(k)).get(15));
dep[j].addUser(user[k]);
}
company.addDept(dep[j]);
}
return company;
}
/**
* 获取客户端的输入流
* @return
*/
public ObjectInputStream getOis() {
return ois;
}
/**
* 获取客户端的输出流
* @return
*/
public ObjectOutputStream getOos() {
return oos;
}
/**
* 获取客户端的用户编号
* @return
*/
public String getUno() {
return uno;
}
/**
* 获取客户端的 dao实例
* @return
*/
public IUserDAO getUserdao() {
return userdao;
}
/**
* 获取客户端的用户信息
* @return
*/
public TUser getUsr() {
return usr;
}
/**
* 获取客户端的部门编号
* @return
*/
public String getDno() {
return dno;
}
/**
* 获取客户端的昵称
* @return
*/
public String getUtrem() {
return utrem;
}
/**
* 获取客户端socket
* @return
*/
public Socket getClientSocket() {
return clientSocket;
}
/**
* 设置线程的循环的变量
* @param tag
*/
public void setTag(boolean tag) {
this.tag = tag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -