蜘蛛伺服器放在內網,用adsl撥號,老斷網,自己編寫了個自動撥號的程式,方法思路和大家分享一下!
Rasdial.java:
public void runbat() {
String cmd = "cmd /c start D:/rasdial.bat";
try {
Process ps = Runtime.getRuntime().exec(cmd);
System.out.println(ps.getInputStream());
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public void work() {
try {
InetAddress ad = InetAddress.getByName("119.75.217.56");
boolean state = ad.isReachable(5000); // 測試是否可以達到該地址
if (state) {
System.err.println("串連" + ad.getHostAddress() + "成功...");
} else {
System.err.println("串連" + ad.getHostAddress() + "失敗!嘗試重新撥號....");
runbat();
}
} catch (IOException ioe) {
System.err.println("重新撥號失敗...");
ioe.printStackTrace();
}
}
rasdial.bat檔案(windows rasdial 命令)
rasdial.exe /disconnect
rasdial.exe 串連名 使用者名稱 密碼
定時器:
<!-- 重新撥號-->
<bean id="Rasdial" class="*.*.*.*.Rasdial">
</bean>
<bean id="jobDetailRasdial" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="Rasdial" />
<property name="targetMethod" value="run" />
<property name="concurrent" value="false" />
</bean>
<bean id="cronTriggerRasdial" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailRasdial" />
<property name="cronExpression" value="0 0/30 * * * ?" />
<property name="startDelay" value="4000" />
</bean>
<!-- 執行觸發器 -->
<bean id="schedulerFactory"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 撥號 -->
<ref bean="cronTriggerRasdial" />
</list>
</property>
</bean>