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