@Override public SocketAddress getRemoteSocketAddress() { synchronized (connectLock) { return channel.getRemoteSocketAddress(); } }
@Override public String toString() { if (isConnected()) { return "UnixSocket[addr=" + channel.getRemoteSocketAddress() + ']'; } return "UnixSocket[unconnected]"; }
@Override public SocketAddress getRemoteSocketAddress() { synchronized (connectLock) { return channel.getRemoteSocketAddress(); } }
@Override public SocketAddress getRemoteSocketAddress() { SocketAddress address = chan.getRemoteSocketAddress(); if (address != null) { return address; } else { return null; } }
@Override public String toString() { if (isConnected()) { return "UnixSocket[addr=" + channel.getRemoteSocketAddress() + ']'; } return "UnixSocket[unconnected]"; }
public SocketAddress getRemoteSocketAddress(Channel channel) { return toSocket(channel).getRemoteSocketAddress(); }
public SocketAddress getRemoteSocketAddress(Channel channel) { return toSocket(channel).getRemoteSocketAddress(); }
public final boolean rxready() { try { ByteBuffer buf = ByteBuffer.allocate(1024); int n = channel.read(buf); UnixSocketAddress remote = channel.getRemoteSocketAddress(); System.out.printf("Read in %d bytes from %s\n", n, remote); if (n > 0) { buf.flip(); channel.write(buf); return true; } else if (n < 0) { return false; } } catch (IOException ex) { ex.printStackTrace(); return false; } return true; } }
public static void main(String[] args) throws IOException { java.io.File path = new java.io.File("/tmp/fubar.sock"); String data = "blah blah"; UnixSocketAddress address = new UnixSocketAddress(path); UnixSocketChannel channel = UnixSocketChannel.open(address); System.out.println("connected to " + channel.getRemoteSocketAddress()); PrintWriter w = new PrintWriter(Channels.newOutputStream(channel)); w.print(data); w.flush(); InputStreamReader r = new InputStreamReader(Channels.newInputStream(channel)); CharBuffer result = CharBuffer.allocate(1024); r.read(result); result.flip(); System.out.println("read from server: " + result.toString()); if (!result.toString().equals(data)) { System.out.println("ERROR: data mismatch"); } else { System.out.println("SUCCESS"); } } }