JAVA实例(swing聊天室)源代码一服务端源码
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import https://www.360docs.net/doc/9816128492.html,.ServerSocket;
import https://www.360docs.net/doc/9816128492.html,.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
原文地址https://www.360docs.net/doc/9816128492.html,/操作时去掉此行
public class TcpQQServer {
public static void main(String[] args) {
List
Map
try {
ServerSocket ss=new ServerSocket(8888);
int i=1;
while(true){
Socket s=ss.accept();
allSocket.add(s);
aSocket.put(s, String.&#118alueOf(i));
new Thread(new ServerReThread(aSocket,s)).start();
i++;
}
} catch (Exception e) {
System.out.println("服务器通讯异常");
}
}
}
class ServerReThread implements Runnable{
Map
Socket s;
public ServerReThread(Map
this.aSocket=aSocket;
this.s=s;
}
public void run() {
try {
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
while(true){
String reStr=br.readLine();
System.out.println(reStr);
String[] tempStr=reStr.split("-");
if("register".equals(tempStr[0])){
if(aSocket.containsKey(s)){
aSocket.put(s, tempStr[1]);
System.out.println(tempStr[1]);
}
reStr=tempStr[0]+"-";
for(Iterator iter=aSocket.&#118alues().iterator();iter.hasNext();){
reStr +=iter.next().toString()+"-";
}
reStr=reStr.substring(0, reStr.length()-1);
System.out.println(reStr);
}
for(Iterator iter=aSocket.keySet().iterator();iter.hasNext();){
Socket s=(Socket)iter.next();
Pri
ntStream ps=new PrintStream(s.getOutputStream(),true);
ps.println(reStr);
ps.flush();
}
}
} catch (Exception e) {
System.out.println("服务器转发消息失败");
}
}
}