Java NIO 实现client端,相比较于Server端的实现,相对简单,如果要支持自动重新连接功能,就需要有线程同步的概念。以下代码实现了自动重新连接的功能,增加了一个具体的连接管理类Manager。
package com.sof.nio;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sof.bas.Config;
import com.sof.exe.Client;
public class Manager implements Runnable {
private static Logger logger = LoggerFactory.getLogger(Client.class);
public boolean connstate = false;
public String ip = Config.getInstance().getStringValue("ip");
public int port = Config.getInstance().getIntValue("port");
public void setestablished() {
connstate = true;
}
public void setdisconnect() {
connstate = false;
}
public boolean getconnstate() {
return connstate;
}
public void run() {
while (true) {
Reactor reactor = null;
try {