import java.io.*;
import java.net.*;
public class MultiServer12_5
{
	public static void main(String args[])
	{
		try
		{
			int clientNumber=1;
			Socket socket;
			ServerSocket server=new ServerSocket(9999);
			System.out.println("服务器端程序已启动");
			while(true)
			{
				System.out.println("等待下一个连接");
				socket=server.accept();
				System.out.println("客户"+clientNumber+"连接成功,其IP地址是："+socket.getInetAddress());
				new ServerThread(socket,clientNumber);
				clientNumber++;				
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
class ServerThread extends Thread{
	private Socket socket;
	private int clientNumber;
	ServerThread(Socket socket,int clientNumber)
	{
		this.socket=socket;
		this.clientNumber=clientNumber;
		start();
	}
	public void run()
	{
		try
		{
			BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
			PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
			while(true)
			{
				String str="";
				str=in.readLine();
				if(str!="")
				System.out.println(clientNumber+str);
				if(str.equals("END")||socket.isClosed())
				{
					System.out.println("客户端"+clientNumber+"已退出");
					break;
				}
				out.println("服务器对客户端"+clientNumber+"响应：" + str);
				out.flush();
			}
			System.out.println("对客户端"+clientNumber+"服务已经关闭 ");
			socket.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}