首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

一个synergy辅助工具:在synergy服务端远道地启动客户端

2013-01-23 
一个synergy辅助工具:在synergy服务端远程地启动客户端作为Java开发人员,你每天通过Synergy使Linux台式机

一个synergy辅助工具:在synergy服务端远程地启动客户端
作为Java开发人员,你每天通过Synergy使Linux台式机和笔记本协作时,可能会面临一个困扰: 每天启动台式机上的synergyc时,你都要去动下台式机的鼠标和键盘,在台式机中输入笔记本的IP,最后再启动syngergycc.


下面这个工具就是可以让你在笔记本上启动台式机的syngergycc,并连接笔记本上的synergy server; 这样一来,你就可以彻底不碰台式机了。


使用前提
1. 你的Linux台式机中已安装Syngergc,且syngergc命令在path中。
2. 你的Linux台式机基本不关机


工具安装办法

1. 在linux台式机中部署下面的java servlet应用

package kent.web.synergyutil;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SynergycServlet extends HttpServlet {    private static final long serialVersionUID = -2286225907488120316L;    @Override    protected void service(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        PrintWriter out = resp.getWriter();        String serverIp = getServerIp(req);        out.println("<h1>Synergyc Controller</h1>");        if (serverIp == null || serverIp.isEmpty()) {            StringBuffer sb = new StringBuffer();            sb.append("<b>Please input your synergy server's IP here: </b>\n");            sb.append("<form action='' method='get'>                      \n");            sb.append(" <input name='serverIp' value='" + getDefaultIp(req)                    + "'/>                          \n");            sb.append(" <input name='GO' type='submit'/>                  \n");            sb.append("</form>                                            \n");            out.println(sb);            return;        }        out.println("<div>" + exec("killall synergyc") + "</div>");        out.println("<div>" + exec("synergyc " + serverIp) + "</div>");    }    private String getDefaultIp(HttpServletRequest req) {        return req.getRemoteAddr();    }    private String exec(String cmd) throws IOException {        try {            Process p = Runtime.getRuntime().exec(cmd);            int exitValue = p.waitFor();            String response = "Executing: " + cmd + ". Exit value is " + exitValue;            return response;        } catch (InterruptedException e) {            throw new IllegalStateException(e);        }    }    private String getServerIp(HttpServletRequest req) {        String serverIp = req.getParameter("serverIp");        if (serverIp != null) {            serverIp = serverIp.trim();        }        return serverIp;    }}


<!--web.xml--><web-app>      <servlet>  <servlet-name>synergycServlet</servlet-name>  <servlet-class>kent.web.synergyutil.SynergycServlet</servlet-class>  </servlet>    <servlet-mapping>  <servlet-name>synergycServlet</servlet-name>  <url-pattern>/sc</url-pattern>  </servlet-mapping>       </web-app>



2. 启动Servlet应用

3. 在笔记本的浏览器中输入:http://台式机:8080/sc,将看到:



输入框里已有的IP就是你的服务端IP,一般不用改。提交后,

热点排行