// SocketImpl.java - Abstract socket implementation. /* Copyright (C) 1999 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.net; import java.io.*; /** * @author Per Bothner * @date January 6, 1999. */ /** Written using on-line Java Platform 1.2 API Specification. * Believed complete and correct. */ public abstract class SocketImpl implements SocketOptions { protected InetAddress address; protected FileDescriptor fd; protected int localport; protected int port; public SocketImpl () { } protected abstract void create (boolean stream) throws IOException; protected abstract void connect (String host, int port) throws IOException; protected abstract void connect (InetAddress host, int port) throws IOException; protected abstract void bind (InetAddress host, int port) throws IOException; protected abstract void listen (int backlog) throws IOException; protected abstract void accept (SocketImpl s) throws IOException; protected abstract InputStream getInputStream() throws IOException; protected abstract OutputStream getOutputStream() throws IOException; protected abstract int available () throws IOException; protected abstract void close () throws IOException; protected FileDescriptor getFileDescriptor () { return fd; } protected InetAddress getInetAddress () { return address; } protected int getPort () { return port; } protected int getLocalPort () { return localport; } public abstract Object getOption(int optID) throws SocketException; public abstract void setOption(int optID, Object value) throws SocketException; public String toString () { return "[addr=" + address.toString() + ",port=" + Integer.toString(port) + ",localport=" + Integer.toString(localport) + "]"; } }