content: package com.alibaba.luaview.debugger;
  
  import java.awt.Dimension;
  import java.awt.Toolkit;
  import java.io.IOException;
  import java.net.ServerSocket;
  import java.net.Socket;
  
  import com.alibaba.luaview.debugger.ui.DebuggerFrame;
  
  public class Main {
  
  	public static void main(String[] args) {
  		new Main().main();
  	}
  
  	private ServerSocket serverSocket;
  
  	public void main() {
  		// 关闭老的
  		String ret = new ExitHttpRequest().sendExitCmd();
  		if (ret != null && "ok".equals(ret.trim())) {
  			System.out.println("关闭...");
  			try {
  				Thread.sleep(1000);
  			} catch (Exception e) {
  				e.printStackTrace();
  			}
  		}
  		System.out.println("启动...");
  
  		{
  			DebuggerFrame frame = new DebuggerFrame(null);
  			frame.dispose();
  		}
  
  		// 启动主控制窗口
  		MainFrame.main();
  
  		// 启动socket调试端口监听服务
  		try {
  			openSocketListner();
  		} catch (Exception e) {
  			e.printStackTrace();
  		}
  	}
  
  	private void openSocketListner() throws Exception {
  		serverSocket = new ServerSocket(Config.PORT);
  		while (serverSocket.isBound()) {
  			Socket connection = serverSocket.accept();
  			connection.setSoTimeout(60 * 60 * 24 * 1000);// 超时时间
  			Center center = new Center(this);
  			center.frame = debuggerFrameMain(center);
  			Server worker = new Server(connection, center);
  			worker.run();
  			// 创建一个tab
  			center.srcCodeCenter.showHelpTab();
  		}
  	}
  
  	private DebuggerFrame debuggerFrameMain(Center center) {
  		// 获取屏幕大小
  		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  		int w = screenSize.width;
  		int h = screenSize.height;
  
  		// 创建界面
  		DebuggerFrame frame = new DebuggerFrame(center);
  
  		// 设置窗口大小位置
  		frame.setLocation(w / 2, 0);
  		frame.setSize(w / 2, h);
  		frame.setVisible(true);
  
  		frame.setIsDebugging(true);
  		frame.setVisible(true);
  		return frame;
  	}
  
  	public void close() {
  		try {
  			if (serverSocket != null)
  				serverSocket.close();
  			serverSocket = null;
  		} catch (IOException e) {
  			e.printStackTrace();
  		}
  	}
  }
  