制作图形界面
This commit is contained in:
@@ -17,74 +17,79 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import javax.naming.spi.Resolver;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import org.kne.cloud.network.mport.IPPort;
|
||||
|
||||
public class Tunnel {
|
||||
public class Tunnel{
|
||||
private String name;
|
||||
private IPPort ipport;
|
||||
private boolean state=false;
|
||||
|
||||
private TListener tlr;
|
||||
|
||||
public boolean isState() {
|
||||
return state;
|
||||
}
|
||||
public void setState(boolean state) {
|
||||
this.state = state;
|
||||
if(tlr!=null) {
|
||||
tlr.setState(state);
|
||||
}
|
||||
}
|
||||
public IPPort getIpport() {
|
||||
return ipport;
|
||||
}
|
||||
private long delay=Long.MAX_VALUE;
|
||||
public TListener getTlr() {
|
||||
return tlr;
|
||||
}
|
||||
public void setTlr(TListener tlr) {
|
||||
this.tlr = tlr;
|
||||
}
|
||||
public long getDelay() {
|
||||
return delay;
|
||||
}
|
||||
public void setDelay(long delay) {
|
||||
this.delay = delay;
|
||||
if(tlr!=null)
|
||||
tlr.setDelay(delay);
|
||||
}
|
||||
private static Map<IPPort,Tunnel> tls=new ConcurrentHashMap<>();
|
||||
private Tunnel(String name, IPPort ipport) throws UnknownHostException {
|
||||
super();
|
||||
this.name = name;
|
||||
this.ipport=ipport;
|
||||
}
|
||||
public static Tunnel newTunnel(String name, IPPort ipport) throws UnknownHostException {
|
||||
Tunnel tmp=tls.get(ipport);
|
||||
if(tmp!=null) {
|
||||
return tmp;
|
||||
}
|
||||
tmp=new Tunnel(name, ipport);
|
||||
tls.put(ipport, tmp);
|
||||
return tmp;
|
||||
}
|
||||
public static Tunnel newTunnel(String name, String ipport) throws UnknownHostException {
|
||||
|
||||
public Tunnel() {
|
||||
|
||||
return newTunnel(name, new IPPort(ipport));
|
||||
}
|
||||
public static Tunnel newTunnel(String name, String ip, int port) throws UnknownHostException {
|
||||
|
||||
return newTunnel(name, new IPPort(ip, port));
|
||||
}
|
||||
|
||||
public static Tunnel newTunnel(String s) throws UnknownHostException {
|
||||
String[]t=s.split("\\$");
|
||||
return newTunnel(t[0], t[1]);
|
||||
|
||||
public Tunnel(String name, IPPort ipport) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.ipport = ipport;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getIp() {
|
||||
return ipport.getIp().getHostAddress();
|
||||
return getIpport().getIp().getHostAddress();
|
||||
}
|
||||
public int getPort() {
|
||||
return ipport.getPort();
|
||||
return getIpport().getPort();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name+"$"+ipport;
|
||||
return getName()+"$"+getIpport();
|
||||
}
|
||||
public Socket connectClientSocket() throws UnknownHostException, IOException {
|
||||
Socket socket=new Socket();
|
||||
socket.connect(ipport.getSocketAddress(), 10000);
|
||||
socket.connect(getIpport().getSocketAddress(), 10000);
|
||||
return socket;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(ipport, name);
|
||||
return Objects.hash(getIpport(), getName());
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@@ -95,20 +100,19 @@ public class Tunnel {
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Tunnel other = (Tunnel) obj;
|
||||
return Objects.equals(ipport, other.ipport) && Objects.equals(name, other.name);
|
||||
}
|
||||
public static void states() {
|
||||
Set<Entry<IPPort, Tunnel>> s=tls.entrySet();
|
||||
for (Iterator iterator = s.iterator(); iterator.hasNext();) {
|
||||
Entry<IPPort, Tunnel> entry = (Entry<IPPort, Tunnel>) iterator.next();
|
||||
Tunnel tll=entry.getValue();
|
||||
System.out.println(tll.getName()+" "+((tll.getDelay()==Long.MAX_VALUE)?"δ֪":tll.getDelay()/1000000+"ms")+" Á¬½ÓÊý"+tll.ati);
|
||||
}
|
||||
return Objects.equals(getIpport(), other.getIpport()) && Objects.equals(getName(), other.getName());
|
||||
}
|
||||
|
||||
private AtomicInteger ati=new AtomicInteger(0);
|
||||
public AtomicInteger getCCount() {
|
||||
return ati;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public void setIpport(IPPort ipport) {
|
||||
this.ipport = ipport;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user