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

📄 handleaclient.java

📁 java写的简单的cs模式的im程序
💻 JAVA
字号:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Timer;


public class HandleAClient extends Thread {
	
	private ObjectInputStream ois;
	private ObjectOutputStream oos;
	private ClientList cl;
	private AClient ac;
	
	
	public HandleAClient(AClient a, ClientList c){
		super();
		ac = a;
		ois = a.getObjectInputStream();
		oos = a.getObjectOutputStream();
		cl = c;
	}
	
	public void run(){
		try {
			while(true){
				Msg msg = (Msg)ois.readObject();
				if(msg.gettype() == Msg.HANDSHAKE) {
					ac.setname(msg.getfrom());
					System.out.println(msg.getfrom()+" is conected.");
					oos.writeObject(Msg.OKMSG("server"));
					oos.flush();
					cl.addclient(ac);
					ac.ok = true;
				}
				else if(ac.ok){
					if(msg.type == Msg.MSG){
						sendmsg(msg);
					}
					else if(msg.type == Msg.LIST){
						oos.writeObject(Msg.LISTMSG("server", cl.toString()));
					}
					else if(msg.type == Msg.EXIT){
						break;
					}
					else{
						
					}
				}
				else{
					
				}
				
			}
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		finally{
			cl.remove(ac.name);
			try {
				ac.close();
			} catch (IOException e1) {
				// TODO 自动生成 catch 块
				e1.printStackTrace();
			}
			System.out.println(ac.name +" left.");
		}
	}
	
	public void sendmsg(Msg m) throws IOException{
		AClient rac = cl.findaclient(m.getto());
		if(rac != null){
			ObjectOutputStream temp = rac.getObjectOutputStream();
			temp.writeObject(m);
			temp.flush();
		}
		else{
			
		}
	}

}

⌨️ 快捷键说明

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