package kittyserver;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import com.yc.kittyserver.util.YcConstants;import com.yc.util.threadpool.ThreadPoolManager;public class KittyServer {public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {ThreadPoolManager tpm=new ThreadPoolManager(10);//解析server.xml协议,读取配置的启动端口int port =parseServer();YcConstants.logger.info("System is running,and read port "+port+"from config");ServerSocket ss=new ServerSocket(port);while(true){Socket s=ss.accept();//System.out.println("收到");YcConstants.logger.info(s.getInetAddress()+"is connecting to this server");TaskServer ts=new TaskServer(s);if(tpm!=null){tpm.process(ts);}else{Thread t=new Thread(ts);t.start();}}}/** * xml解析 * @return * @throws ParserConfigurationException * @throws IOException * @throws SAXException */private static int parseServer() throws ParserConfigurationException, SAXException, IOException {DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();//FIXME: 路径有问题//InputStream iis=KittyServer.class.getClassLoader().getResourceAsStream("conf"+File.separator+"server.xml");File f=new File(System.getProperty("user.dir")+File.separator+"conf"+File.separator+"server.xml");Document doc=builder.parse(new FileInputStream(f));NodeList nodelist=doc.getElementsByTagName("Connector");for(int i=0;i<nodelist.getLength();i++){Element node=(Element) nodelist.item(i);return Integer.parseInt(node.getAttribute("port"));}return 80;}}下面是server.xml文件的内容<?xml version="1.0" encoding="UTF-8"?>
转载请注明原文地址: https://ju.6miu.com/read-971126.html