diff options
| author | Joe Robinson <joe@lc8n.com> | 2010-10-27 14:21:09 +0100 | 
|---|---|---|
| committer | Joe Robinson <joe@lc8n.com> | 2010-10-27 14:21:09 +0100 | 
| commit | 063284837c8c366e5502b1b0264b8eb807b61732 (patch) | |
| tree | fff3a1e1e5afaa671485b9d990704658276627ac /org/apache/commons/net/daytime | |
Basic upload functionality to predifined location, with basic file browser
Diffstat (limited to 'org/apache/commons/net/daytime')
| -rw-r--r-- | org/apache/commons/net/daytime/DaytimeTCPClient.java | 92 | ||||
| -rw-r--r-- | org/apache/commons/net/daytime/DaytimeUDPClient.java | 84 | 
2 files changed, 176 insertions, 0 deletions
| diff --git a/org/apache/commons/net/daytime/DaytimeTCPClient.java b/org/apache/commons/net/daytime/DaytimeTCPClient.java new file mode 100644 index 0000000..a77c8c1 --- /dev/null +++ b/org/apache/commons/net/daytime/DaytimeTCPClient.java @@ -0,0 +1,92 @@ +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +package org.apache.commons.net.daytime;
 +
 +import java.io.BufferedReader;
 +import java.io.IOException;
 +import java.io.InputStreamReader;
 +
 +import org.apache.commons.net.SocketClient;
 +
 +/***
 + * The DaytimeTCPClient class is a TCP implementation of a client for the
 + * Daytime protocol described in RFC 867.  To use the class, merely
 + * establish a connection with
 + * {@link org.apache.commons.net.SocketClient#connect  connect }
 + * and call {@link #getTime  getTime() } to retrieve the daytime
 + * string, then
 + * call {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
 + * to close the connection properly.
 + * <p>
 + * <p>
 + * @author Daniel F. Savarese
 + * @see DaytimeUDPClient
 + ***/
 +
 +public final class DaytimeTCPClient extends SocketClient
 +{
 +    /*** The default daytime port.  It is set to 13 according to RFC 867. ***/
 +    public static final int DEFAULT_PORT = 13;
 +
 +    // Received dates will likely be less than 64 characters.
 +    // This is a temporary buffer used while receiving data.
 +    private char[] __buffer = new char[64];
 +
 +    /***
 +     * The default DaytimeTCPClient constructor.  It merely sets the default
 +     * port to <code> DEFAULT_PORT </code>.
 +     ***/
 +    public DaytimeTCPClient ()
 +    {
 +        setDefaultPort(DEFAULT_PORT);
 +    }
 +
 +    /***
 +     * Retrieves the time string from the server and returns it.  The
 +     * server will have closed the connection at this point, so you should
 +     * call
 +     * {@link org.apache.commons.net.SocketClient#disconnect  disconnect }
 +     * after calling this method.  To retrieve another time, you must
 +     * initiate another connection with
 +     * {@link org.apache.commons.net.SocketClient#connect  connect }
 +     * before calling <code> getTime() </code> again.
 +     * <p>
 +     * @return The time string retrieved from the server.
 +     * @exception IOException  If an error occurs while fetching the time string.
 +     ***/
 +    public String getTime() throws IOException
 +    {
 +        int read;
 +        StringBuffer result = new StringBuffer(__buffer.length);
 +        BufferedReader reader;
 +
 +        reader = new BufferedReader(new InputStreamReader(_input_));
 +
 +        while (true)
 +        {
 +            read = reader.read(__buffer, 0, __buffer.length);
 +            if (read <= 0)
 +                break;
 +            result.append(__buffer, 0, read);
 +        }
 +
 +        return result.toString();
 +    }
 +
 +}
 +
 diff --git a/org/apache/commons/net/daytime/DaytimeUDPClient.java b/org/apache/commons/net/daytime/DaytimeUDPClient.java new file mode 100644 index 0000000..64eef9d --- /dev/null +++ b/org/apache/commons/net/daytime/DaytimeUDPClient.java @@ -0,0 +1,84 @@ +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +package org.apache.commons.net.daytime;
 +
 +import java.io.IOException;
 +import java.net.DatagramPacket;
 +import java.net.InetAddress;
 +
 +import org.apache.commons.net.DatagramSocketClient;
 +
 +/***
 + * The DaytimeUDPClient class is a UDP implementation of a client for the
 + * Daytime protocol described in RFC 867.  To use the class, merely
 + * open a local datagram socket with
 + * {@link org.apache.commons.net.DatagramSocketClient#open  open }
 + * and call {@link #getTime  getTime } to retrieve the daytime
 + * string, then
 + * call {@link org.apache.commons.net.DatagramSocketClient#close  close }
 + * to close the connection properly.  Unlike
 + * {@link org.apache.commons.net.daytime.DaytimeTCPClient},
 + * successive calls to {@link #getTime  getTime } are permitted
 + * without re-establishing a connection.  That is because UDP is a
 + * connectionless protocol and the Daytime protocol is stateless.
 + * <p>
 + * <p>
 + * @author Daniel F. Savarese
 + * @see DaytimeTCPClient
 + ***/
 +
 +public final class DaytimeUDPClient extends DatagramSocketClient
 +{
 +    /*** The default daytime port.  It is set to 13 according to RFC 867. ***/
 +    public static final int DEFAULT_PORT = 13;
 +
 +    private byte[] __dummyData = new byte[1];
 +    // Received dates should be less than 256 bytes
 +    private byte[] __timeData = new byte[256];
 +
 +    /***
 +     * Retrieves the time string from the specified server and port and
 +     * returns it.
 +     * <p>
 +     * @param host The address of the server.
 +     * @param port The port of the service.
 +     * @return The time string.
 +     * @exception IOException If an error occurs while retrieving the time.
 +     ***/
 +    public String getTime(InetAddress host, int port) throws IOException
 +    {
 +        DatagramPacket sendPacket, receivePacket;
 +
 +        sendPacket =
 +            new DatagramPacket(__dummyData, __dummyData.length, host, port);
 +        receivePacket = new DatagramPacket(__timeData, __timeData.length);
 +
 +        _socket_.send(sendPacket);
 +        _socket_.receive(receivePacket);
 +
 +        return new String(receivePacket.getData(), 0, receivePacket.getLength());
 +    }
 +
 +    /*** Same as <code>getTime(host, DaytimeUDPClient.DEFAULT_PORT);</code> ***/
 +    public String getTime(InetAddress host) throws IOException
 +    {
 +        return getTime(host, DEFAULT_PORT);
 +    }
 +
 +}
 +
 | 
