
com.googlecode.mycontainer.util.tunnel.ConsoleTunnelHandler Maven / Gradle / Ivy
The newest version!
package com.googlecode.mycontainer.util.tunnel;
import java.text.MessageFormat;
public class ConsoleTunnelHandler extends RedirectTunnelHandler {
@Override
public void data(TunnelConnection conn) {
byte[] sent = conn.getLocalData().getBuffer();
if (sent.length > 0) {
println("sent {0} {1}", conn, bufferToString(sent));
}
byte[] received = conn.getRemoteData().getBuffer();
if (received.length > 0) {
println("received {0} {1}", conn, bufferToString(received));
}
super.data(conn);
}
protected String bufferToString(byte[] buffer) {
StringBuilder sb = new StringBuilder();
// StringBuilder hex = new StringBuilder();
for (int i = 0; i < buffer.length; i++) {
byte b = buffer[i];
// int num = 0xFFFFFFFF & b;
// if (num <= 0xF) {
// hex.append('0');
// }
// hex.append(Integer.toHexString(num));
// if (i % 4 == 0 && i > 0) {
// hex.append(' ');
// }
if (b < 20 || b > 127) {
b = (char) '.';
}
char c = (char) (0xFFFF & b);
sb.append(c);
}
// return sb.append(' ').append(hex).toString();
return sb.toString();
}
@Override
public void connected(TunnelConnection conn) {
println("connected {0}", conn);
super.connected(conn);
}
private void println(String msg, Object... values) {
log(MessageFormat.format(msg, values));
}
protected void log(String msg) {
System.out.println(msg);
}
@Override
public void disconnected(TunnelConnection conn) {
println("disconnected {0}", conn);
super.disconnected(conn);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy