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/DaytimeUDPClient.java | |
Basic upload functionality to predifined location, with basic file browser
Diffstat (limited to 'org/apache/commons/net/daytime/DaytimeUDPClient.java')
| -rw-r--r-- | org/apache/commons/net/daytime/DaytimeUDPClient.java | 84 | 
1 files changed, 84 insertions, 0 deletions
| 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);
 +    }
 +
 +}
 +
 | 
