KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > net > io > SocketInputStream


1 /*
2  * Copyright 2001-2005 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.net.io;
17
18 import java.io.FilterInputStream JavaDoc;
19 import java.io.IOException JavaDoc;
20 import java.io.InputStream JavaDoc;
21 import java.net.Socket JavaDoc;
22
23 /***
24  * This class wraps an input stream, storing a reference to its originating
25  * socket. When the stream is closed, it will also close the socket
26  * immediately afterward. This class is useful for situations where you
27  * are dealing with a stream originating from a socket, but do not have
28  * a reference to the socket, and want to make sure it closes when the
29  * stream closes.
30  * <p>
31  * <p>
32  * @author Daniel F. Savarese
33  * @see SocketOutputStream
34  ***/

35
36 public class SocketInputStream extends FilterInputStream JavaDoc
37 {
38     private Socket JavaDoc __socket;
39
40     /***
41      * Creates a SocketInputStream instance wrapping an input stream and
42      * storing a reference to a socket that should be closed on closing
43      * the stream.
44      * <p>
45      * @param socket The socket to close on closing the stream.
46      * @param stream The input stream to wrap.
47      ***/

48     public SocketInputStream(Socket JavaDoc socket, InputStream JavaDoc stream)
49     {
50         super(stream);
51         __socket = socket;
52     }
53
54     /***
55      * Closes the stream and immediately afterward closes the referenced
56      * socket.
57      * <p>
58      * @exception IOException If there is an error in closing the stream
59      * or socket.
60      ***/

61     public void close() throws IOException JavaDoc
62     {
63         super.close();
64         __socket.close();
65     }
66 }
67
Popular Tags