📄 servertread.java
字号:
package edu.sccp.chat.server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Iterator;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.Vector;
import edu.sccp.chat.bo.DepartmentBO;
import edu.sccp.chat.bo.UserBO;
import edu.sccp.chat.frame.MainGUI;
public class ServerTread extends Thread{
Socket socket;
public static Vector vcetor=DepartmentBO.selectdept();
public void run()
{
while(true)
{
try
{
socket=MainGUI.serverSocket.accept();
}
catch(IOException ex)
{
}
//创建客户端线程,一个线程对应一个客户端
Client c=new Client(socket);
c.start();
}
}
class Client extends Thread
{
public ObjectInputStream br;
public ObjectOutputStream ps;
String name;
Socket socket;
public Client(Socket s)
{
try
{
socket=s;
ps =new ObjectOutputStream(socket.getOutputStream());
br =new ObjectInputStream(socket.getInputStream());
}
catch(IOException ex)
{
}
}
public void run()
{
String info = null;
while(true)
{
try
{
try {
info=(String) br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
br.close();
}
if(info.equals("停止服务"))
break;
//以":"来分割接收到的字符串
StringTokenizer st=new StringTokenizer(info,":");
String keyword=st.nextToken();
//处理客户端传来的各种信息,"CONNECT"表示客户端发出
//的连接请示,"MSG"表示客户端发出了聊天消息,"QUIT"
//表示客户端要求退出
if(keyword.equals("MasterLogin"))
{
String name=st.nextToken();
String pwd=st.nextToken();
Vector vector=UserBO.masterLogin(name,pwd);
masterLogin(vector);
}
else if(keyword.equals("UserLogin"))
{
String name=st.nextToken();
String pwd=st.nextToken();
Vector vector=UserBO.userLogin(name,pwd);
userLogin(vector);
}else if(keyword.equals("exit"))//用户退出时
{
Vector vector = null;
try {
vector = (Vector) br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
exitUser(vector);
}else if(keyword.equals("所有用户信息"))
{
Vector vector1=UserBO.userAllInfo();
Vector vv=new Vector();
vv.addElement("所有用户信息");
vv.addElement(vector1);
ps.writeObject(vv);
}else if(keyword.equals("群聊"))
{
String str = null;
try {
str = (String) br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Set keys =MainGUI.soceketMap.keySet();
Iterator key_iter = keys.iterator();
while(key_iter.hasNext()){//发给其他在线用户
ObjectOutputStream tempoos = (ObjectOutputStream)MainGUI.soceketMap.get(key_iter.next());
try {
Vector vvv=new Vector();
vvv.addElement("群聊");
vvv.addElement(str);
tempoos.writeObject(vvv);
ps.flush();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
else if(keyword.equals("公司公告"))
{
Vector v=new Vector();
v.addElement("公司公告");
v.addElement(DepartmentBO.selectdept());
v.addElement(DepartmentBO.selectCompany());
ps.writeObject(v);
}else if(keyword.equals("部门公告"))
{
String dept = null;
try {
dept = (String)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String st1=DepartmentBO.selectdeptgonggao(dept);
Vector v1=new Vector();
v1.addElement("部门公告");
v1.addElement(st1);
ps.writeObject(v1);
}
else if(keyword.equals("修改部门公告"))
{
Vector dept = null;
try {
dept=(Vector)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean fal=DepartmentBO.alterMessageData("t_dept",(String)dept.get(1),(String)dept.get(0));
if(fal)
{
Vector v2=new Vector();
v2.addElement("修改部门公告");
v2.addElement("yes");
ps.writeObject(v2);
}
else
{
Vector v2=new Vector();
v2.addElement("修改部门公告");
v2.addElement("no");
ps.writeObject(v2);
}
}
else if(keyword.equals("部门名称"))
{
Vector v3=new Vector();
v3.addElement("部门名称");
v3.addElement(DepartmentBO.selectdept());
ps.writeObject(v3);
}else if(keyword.equals("部门信息"))
{
String dept = null;
try {
dept = (String)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Vector s1=DepartmentBO.deptInfo(dept.trim());
Vector v4=new Vector();
v4.addElement("部门信息");
v4.addElement(s1);
ps.writeObject(v4);
}
else if(keyword.equals("修改部门信息"))
{
Vector dept = null;
try {
dept=(Vector)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i=DepartmentBO.upd((String)dept.get(0),(String)dept.get(1),(String)dept.get(2),(String)dept.get(3),(String)dept.get(4),(String)dept.get(5));
if(i==1)
{
Vector v2=new Vector();
v2.addElement("修改部门信息");
v2.addElement("yes");
ps.writeObject(v2);
}else
{
Vector v2=new Vector();
v2.addElement("修改部门信息");
v2.addElement("no");
ps.writeObject(v2);
}
}else if(keyword.equals("修改自身密码"))
{
Vector pwd=new Vector();
try {
pwd=(Vector)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean fal=UserBO.updatePassword1((String)pwd.get(0),(String)pwd.get(1),(String)pwd.get(2));
if(fal)
{
Vector v2=new Vector();
v2.addElement("修改自身密码");
v2.addElement("yes");
ps.writeObject(v2);
}else
{
Vector v2=new Vector();
v2.addElement("修改自身密码");
v2.addElement("no");
ps.writeObject(v2);
}
}else if(keyword.equals("检测ID"))
{
String id = null;
try {
id=(String)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String [] userinfo=UserBO.userhead(id);
if(userinfo[0]!="F"){
Vector v2=new Vector();
v2.addElement("检测ID");
v2.addElement("no");
ps.writeObject(v2);
}else{
Vector v2=new Vector();
v2.addElement("检测ID");
v2.addElement("yes");
ps.writeObject(v2);
}
}else if(keyword.equals("插入员工"))
{
Vector user=new Vector();
try {
user=(Vector)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i=UserBO.insertInfo((String)user.get(0),(String)user.get(1),(String)user.get(2),(String)user.get(3),(String)user.get(4),(String)user.get(5),(String)user.get(6),(String)user.get(7),(String)user.get(8),(String)user.get(9),(String)user.get(10));
if(i==1)
{
Vector v2=new Vector();
v2.addElement("插入员工");
v2.addElement("yes");
ps.writeObject(v2);
}else
{
Vector v2=new Vector();
v2.addElement("插入员工");
v2.addElement("no");
ps.writeObject(v2);
}
}else if(keyword.equals("添加用户"))
{
Vector v=new Vector();
v.addElement("添加用户");
v.addElement(DepartmentBO.selectdept());
ps.writeObject(v);
}else if(keyword.equals("用户信息"))
{
String id = null;
try {
id=(String)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[]str=UserBO.userhead(id);
Vector v=new Vector();
v.addElement("用户信息");
v.addElement(str);
ps.writeObject(v);
}
else if(keyword.equals("删除用户"))
{
String id = null;
try {
id=(String)br.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean fal=UserBO.alldeletata(id);
if(fal)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -