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

📄 connserver.java

📁 java 聊天室源码
💻 JAVA
字号:
package com.neworiental.mj.mingregister;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;

public class ConnServer {
	List list = new ArrayList();

	String strB = "";


	Vector onLineUser = new Vector();

	public void connServer() throws IOException {
		ServerSocket ss = new ServerSocket(8888);
		Socket s;
		while (true) {
			s = ss.accept();
			list.add(s);
			ServerThread st = new ServerThread(s, list, onLineUser);
			Thread tt = new Thread(st);
			tt.start();

		}
	}

	public static void main(String[] args) {
		ConnServer cs = new ConnServer();
		try {
			cs.connServer();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class ServerThread implements Runnable {
	Socket ss;
	String UserName;
	List list;

	Vector onLineUser = new Vector();

	OutputStream os;

	public ServerThread(Socket s, List list, Vector onLineUser) {
		ss = s;
		this.list = list;
		this.onLineUser = onLineUser;
	}

	public void run() {
		// TODO Auto-generated method stub
		String str = new String("");
		try {
			InputStream is = ss.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));

			while ((str = br.readLine()) != null) {
				if (str.indexOf("said:") <= 0) {
					UserName=str;
					onLineUser.addElement(str);
					String strBuff = new String("");
					for (int i = 0; i < onLineUser.size(); i++) {
						strBuff = strBuff + onLineUser.elementAt(i) + "@@"; // 强制类型转换成为字符串
					}
					str = strBuff;
				}

				Iterator it = list.iterator();
				while (it.hasNext()) {
					Socket sk = (Socket) it.next();
					os = sk.getOutputStream();
					BufferedWriter bw = new BufferedWriter(
							new OutputStreamWriter(os));
					PrintWriter pw = new PrintWriter(bw, true);

					pw.println(str);

				}

			}
		} catch (Exception e) {
			onLineUser.removeElement(UserName);
			System.out.println(UserName+" exit");
			String strBuff = new String("");
			for (int i = 0; i < onLineUser.size(); i++) {
					strBuff = strBuff + onLineUser.elementAt(i) + "@@"; // 强制类型转换成为字符串
			}
			str = strBuff;
			//System.out.println(str);
			
				try {

					Iterator it = list.iterator();
					while (it.hasNext()) {
						Socket sk = (Socket) it.next();
						os = sk.getOutputStream();
						BufferedWriter bw = new BufferedWriter(
								new OutputStreamWriter(os));
						PrintWriter pw = new PrintWriter(bw, true);

						pw.println(str);

					}
				} catch (Exception ee) {
					ee.printStackTrace();
				}
			
		}
	}
}

⌨️ 快捷键说明

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