package Server;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.*;
/**
* Server主要是用来不断接收新的用户
* @author lijiapeng
*
*/
public class Server {
//nameToSocket存放新登录的用户名与socket的映射关系
private static Map<String,Socket> nameTOSocket=new HashMap<String,Socket>();
//nO表示用户名与输出流的映射
private static Map<String,PrintWriter> nO=new HashMap<String,PrintWriter>();
private PrintWriter out;
/**
*
* @return 登录的用户名与socket的映射关系(也可以作为取得在线用户使用)
*/
public static Map getNameToSocket(){
return nameTOSocket;
}
/**
*
* @return 用户名与输出流的映射
*/
public static Map getNO(){
return nO;
}
/**
* 主函数,主要用来连接客户
* @param args
* @throws IOException
*/
public static void main(String args[])throws IOException{
ServerSocket s=new ServerSocket(4000,100);
System.out.println("服务器开启...");
try{
while(true){
Socket socket=s.accept();
System.out.println("Connection accept:"+socket);
try{
new ServerThread(socket);
}catch(IOException e){
System.out.println(e.getMessage());
socket.close();
}
}
}catch(Exception e){
System.out.print(e.getMessage());
e.printStackTrace();
}
}
}