1:
37:
38:
39: package ;
40:
41: import ;
42:
43: import ;
44: import ;
45: import ;
46: import ;
47: import ;
48:
49: public final class LocalServerSocket extends ServerSocket
50: {
51:
52:
53:
54:
55: private LocalSocketImpl myImpl;
56: private boolean closed;
57:
58:
59:
60:
61: public LocalServerSocket () throws IOException
62: {
63: myImpl = new LocalSocketImpl ();
64: }
65:
66: public LocalServerSocket (SocketAddress bindPoint) throws IOException
67: {
68: this ();
69: bind (bindPoint);
70: }
71:
72:
73:
74:
75: public void bind (SocketAddress bindPoint) throws IOException
76: {
77: bind (bindPoint, 0);
78: }
79:
80: public void bind (SocketAddress bindPoint, int backlog) throws IOException
81: {
82: myImpl.doCreate ();
83: myImpl.bind (bindPoint);
84: myImpl.listen (backlog);
85: }
86:
87: public InetAddress getInetAddress ()
88: {
89: return null;
90: }
91:
92: public int getLocalPort ()
93: {
94: return -1;
95: }
96:
97: public SocketAddress getLocalSocketAddress ()
98: {
99: return myImpl.getLocalAddress ();
100: }
101:
102: public Socket accept () throws IOException
103: {
104: LocalSocket s = new LocalSocket (true);
105: myImpl.accept (s.getLocalImpl());
106: s.localConnected = true;
107: return s;
108: }
109:
110: public void close () throws IOException
111: {
112: myImpl.close ();
113: myImpl.unlink ();
114: closed = true;
115: }
116:
117: public boolean isBound ()
118: {
119: return myImpl.getLocalAddress () != null;
120: }
121:
122: public boolean isClosed ()
123: {
124: return closed;
125: }
126:
127: public void setSoTimeout (int timeout)
128: {
129: throw new UnsupportedOperationException ("local sockets do not support timeouts");
130: }
131:
132: public int getSoTimeout ()
133: {
134: throw new UnsupportedOperationException ("local sockets do not support timeouts");
135: }
136:
137: public void setReuseAddress (boolean b)
138: {
139: throw new UnsupportedOperationException ("local sockets do not support reuse address");
140: }
141:
142: public boolean getReuseAddress ()
143: {
144: throw new UnsupportedOperationException ("local sockets do not support reuse address");
145: }
146:
147: public String toString ()
148: {
149: return LocalServerSocket.class.getName() + " [ address="
150: + myImpl.getLocalAddress() + " ]";
151: }
152:
153: public void setReceiveBufferSize (int size)
154: {
155: throw new UnsupportedOperationException ("local sockets do not support buffer size");
156: }
157:
158: public int getReceiveBufferSize ()
159: {
160: throw new UnsupportedOperationException ("local sockets do not support buffer size");
161: }
162:
163: public void setSendBufferSize (int size)
164: {
165: throw new UnsupportedOperationException ("local sockets do not support buffer size");
166: }
167:
168: public int getSendBufferSize ()
169: {
170: throw new UnsupportedOperationException ("local sockets do not support buffer size");
171: }
172: }