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 allSocket=new ArrayList();
Map aSocket=new HashMap();
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 aSocket;
Socket s;

public ServerReThread(Map aSocket,Socket s) {
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("服务器转发消息失败");
}

}

}

相关文档
最新文档