⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logserver.java

📁 一个简单的搜索search 的servlet程序
💻 JAVA
字号:
import java.net.*;import java.io.*;public class LogServer extends Object{	public static final int DEFAULT_PORT=7114;	public static final String DISCONNECT_MSG="closeConnection";	public static final int MAX_SILENCE=(1000*60*10);//10 minutes	public static final String OK_MSG="ok";		private PrintWriter log;		static public void main(String[] argv)	{	    LogServer serv;	    String logFile=null;	    	    if(argv.length > 0)	    {	        logFile = argv[0];	    }	    	    serv = new LogServer(logFile);	    serv.start();	}		public LogServer(String logFile)	{	    OutputStream out;	    	    try	    {	        if(logFile != null)	        {	            out = new FileOutputStream(logFile);	        }	        else	        {	            out = System.out;	        }	        	        log = new PrintWriter(out,true);	    }	    catch(Exception exp)	    {	        log = null;	        System.out.println("Error creating log. "+exp);	    }	}		public void start()	{		ServerSocket servSock;		Socket clientSock;		LogServerThread thread;				try		{		    if(log == null) throw new Exception();		    		    log("Starting server.");		    			servSock = new ServerSocket(DEFAULT_PORT);					while(servSock != null)			{			    clientSock = servSock.accept();				thread = new LogServerThread(clientSock,this);				thread.start();			}		}		catch(Exception ex)		{		    System.out.println("Server going down...");		}	}		public void log(String str)	{	    synchronized(log)	    {	        log.println(str);	    }	}}class LogServerThread extends Thread{    Socket clientSock;    LogServer server;    InetAddress clientAddr;        public LogServerThread(Socket client,LogServer serv)    {        clientSock = client;        try        {            clientSock.setSoTimeout(LogServer.MAX_SILENCE);        }        catch(Exception exp)        {        }                clientAddr = client.getInetAddress();        server = serv;                server.log("Accepted connection: "+clientAddr.getHostAddress());    }        public void run()    {		BufferedReader reader=null;		PrintWriter writer=null;		Reader readIn;		String message;				try		{		    readIn = new InputStreamReader(clientSock.getInputStream());		    reader = new BufferedReader(readIn);		    writer = new PrintWriter(clientSock.getOutputStream(),true);		    		    while(true)		    {		        message = reader.readLine();		        		        if(LogServer.DISCONNECT_MSG.equals(message))		        {				    break;		        }		        else		        {    		        writer.println(LogServer.OK_MSG);		        }		        		        server.log(clientAddr.getHostAddress()+" "+message);		    }		}		catch(Exception exp)		{		    //Timeout will throw an exception, as will		    //the client socket closing, catch the exception		    //and clean up in finally		}		finally		{		    try		    {    		    server.log("Closing connection: "+clientAddr.getHostAddress());	    	    if(reader != null) reader.close();	    	    if(writer != null) writer.close();		        clientSock.close();		    }		    catch(Exception ex)		    {		    }		}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -