📄 networkmanager.java
字号:
package net.sourceforge.j2meautonetwork.operation;
import java.util.Vector;
import net.sourceforge.j2meautonetwork.model.User;
import net.sourceforge.j2meautonetwork.util.CodeDefine;
import net.sourceforge.j2meautonetwork.util.Utilities;
public class NetworkManager {
private static NetworkManager instance = null;
private NetworkManager() {
}
public static synchronized NetworkManager getInstance() {
if (instance == null) {
instance = new NetworkManager();
}
return instance;
}
public User autoNetworkTest() {
for (int i = 0; i < CodeDefine.PROXY_URLS.length; i++) {
NetworkDetector nd = new NetworkDetector(CodeDefine.PROXY_URLS[i]);
new Thread(nd).start();
long startime = System.currentTimeMillis();
debug(" " + i + ", start");
low:{
for (;;) {
if (nd.getOver()) {
if (nd.getConnected()) {
debug("当前连接方式: " + i + ", " + CodeDefine.USER_NETWORKS[i]);
return null;
} else {
break low;
}
}
debug("检测 " + i + ", 已经过了 " + (System.currentTimeMillis() - startime) + "毫秒");
if((System.currentTimeMillis() - startime)>=CodeDefine.HTTP_CONNECT_TIME_OUT){
nd.notifyStop();
break low;
}
try {
Thread.sleep(5000L);
} catch (InterruptedException e) {
}
}
}
debug(" " + i + ", end");
}
debug("尝试了很多种连接方式后,没有连上");
return null;
}
private void debug(String log) {
Utilities.debug("Manager " + log);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -