corda/classpath/java/nio/channels/ServerSocketChannel.java

50 lines
1.3 KiB
Java
Raw Normal View History

/* Copyright (c) 2008, Avian Contributors
Permission to use, copy, modify, and/or distribute this software
for any purpose with or without fee is hereby granted, provided
that the above copyright notice and this permission notice appear
in all copies.
There is NO WARRANTY for this software. See license.txt for
details. */
package java.nio.channels;
import java.net.InetSocketAddress;
public class ServerSocketChannel extends SocketChannel {
public static ServerSocketChannel open() {
return new ServerSocketChannel();
}
public SocketChannel accept() throws Exception {
SocketChannel c = new SocketChannel();
c.socket = doAccept();
c.connected = true;
return c;
}
public Handle socket() {
return new Handle();
}
private int doAccept() throws Exception {
return natDoAccept(socket);
}
private int doListen(String host, int port) throws Exception {
return natDoListen(host, port);
}
public class Handle {
public void bind(InetSocketAddress address)
throws Exception
{
socket = doListen(address.getHostName(), address.getPort());
}
}
private static native int natDoAccept(int socket) throws Exception;
private static native int natDoListen(String host, int port) throws Exception;
}