| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!-- |
| 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. |
| --> |
| <document> |
| |
| <properties> |
| <title>Overview</title> |
| <author email="dev@commons.apache.org">Apache Commons Documentation Team</author> |
| </properties> |
| |
| <body> |
| |
| <section name="Apache Commons Net"> |
| <p> |
| Apache Commons Net™ library implements the client side of many basic |
| Internet protocols. The purpose of the library is to provide |
| fundamental protocol access, not higher-level |
| abstractions. Therefore, some of the design violates |
| object-oriented design principles. Our philosophy is to make the |
| global functionality of a protocol accessible (e.g., TFTP send |
| file and receive file) when possible, but also provide access to |
| the fundamental protocols where applicable so that the programmer |
| may construct his own custom implementations (e.g, the TFTP |
| packet classes and the TFTP packet send and receive methods are |
| exposed). |
| </p> |
| </section> |
| <section name="Features"> |
| <p> |
| Supported protocols include: |
| <ul> |
| <li>FTP/FTPS</li> |
| <li>FTP over HTTP (experimental)</li> |
| <li>NNTP</li> |
| <li>SMTP(S)</li> |
| <li>POP3(S)</li> |
| <li>IMAP(S)</li> |
| <li>Telnet</li> |
| <li>TFTP</li> |
| <li>Finger</li> |
| <li>Whois</li> |
| <li>rexec/rcmd/rlogin</li> |
| <li>Time (rdate) and Daytime</li> |
| <li>Echo</li> |
| <li>Discard</li> |
| <li>NTP/SNTP</li> |
| </ul> |
| </p> |
| </section> |
| <section name="Background"> |
| <p> |
| Apache Jakarta Commons Net started as a commercial Java library called |
| NetComponents, originally developed by ORO, Inc. in the early |
| days of Java. After its 1.3.8 release in 1998, the source code was |
| donated to the Apache Software Foundation and made available under |
| the Apache License. Since then, many programmers have contributed |
| to the continued development of Jakarta Commons Net. The current |
| version numbering scheme bears no relation to the old. In other |
| words, Jakarta Commons Net 1.0 succeeded and supplanted |
| NetComponents 1.3.8. |
| Apache Jakarta Commons is now an independent project and is called Apache Commons. |
| </p> |
| </section> |
| <section name="Examples"> |
| <p> |
| Commons NET includes several working sample applications that you can use. |
| Source files are included in the source (and binary) archives, and a compiled jar is provided. |
| </p> |
| To use one of the sample applications, ensure that the example and main jars are both in the same directory. |
| Then run the class as per the following example: |
| <pre>java -jar [path/]commons-net-examples-3.1.jar FTPClientExample [parameters]</pre> |
| This uses the helper application which supports shorthand class names. |
| <br/> |
| Alternatively, ensure that the example and main jars are on the classpath. |
| Then invoke the class directly, for example: |
| <pre>java -cp commons-net-examples-3.1.jar;commons-net-3.1.jar examples/ftp/FTPClientExample [parameters]</pre> |
| |
| <subsection name="FTP (package: examples/ftp)"> |
| <ul> |
| <li><a href="examples/ftp/FTPClientExample.java">FTPClientExample</a> |
| demonstrates file download and upload, LIST, MLST etc over FTP(S) and FTP over HTTP |
| </li> |
| <li><a href="examples/ftp/ServerToServerFTP.java">ServerToServerFTP</a> |
| This program arranges a server to server file transfer that transfers a file from host1 to host2. |
| </li> |
| <li><a href="examples/ftp/TFTPExample.java">TFTPExample</a> |
| This is an example of a simple Java tftp client |
| </li> |
| </ul> |
| </subsection> |
| |
| <subsection name="MAIL (package: examples/mail)"> |
| <ul> |
| <li><a href="examples/mail/IMAPMail.java">IMAPMail</a> |
| This is an example program demonstrating how to use the IMAP[S]Client class. |
| </li> |
| <li><a href="examples/mail/POP3Mail.java">POP3Mail</a> |
| This is an example program demonstrating how to use the POP3[S]Client class. |
| </li> |
| <li><a href="examples/mail/SMTPMail.java">SMTPMail</a> |
| This is an example program demonstrating how to use the SMTP[S]Client class. |
| </li> |
| </ul> |
| </subsection> |
| |
| <subsection name="NNTP (package: examples/nntp)"> |
| <ul> |
| <li><a href="examples/nntp/ArticleReader.java">ArticleReader</a> |
| Simple class showing one way to read an article header and body. |
| </li> |
| <li><a href="examples/nntp/ExtendedNNTPOps.java">ExtendedNNTPOps</a> |
| Simple class showing some of the extended commands (AUTH, XOVER, LIST ACTIVE) |
| </li> |
| <li><a href="examples/nntp/ListNewsgroups.java">ListNewsgroups</a> |
| This is a simple example using the NNTP package to approximate the |
| Unix newsgroups command. It connects to the specified news |
| server and issues fetches the list of newsgroups stored by the server. |
| On servers that store a lot of newsgroups, this command can take a very |
| long time (listing upwards of 30,000 groups). |
| </li> |
| <li><a href="examples/nntp/MessageThreading.java">MessageThreading</a> |
| Sample program demonstrating the use of article iteration and threading. |
| </li> |
| <li><a href="examples/nntp/PostMessage.java">PostMessage</a> |
| This is an example program using the NNTP package to post an article to the specified newsgroup(s). |
| It prompts you for header information and a filename to post. |
| </li> |
| </ul> |
| </subsection> |
| |
| <subsection name="NTP (package: examples/ntp)"> |
| <ul> |
| <li><a href="examples/ntp/NTPClient.java">NTPClient</a> |
| This is an example program demonstrating how to use the NTPUDPClient |
| class. This program sends a Datagram client request packet to a |
| Network time Protocol (NTP) service port on a specified server, |
| retrieves the time, and prints it to standard output along with |
| the fields from the NTP message header (e.g. stratum level, reference id, |
| poll interval, root delay, mode, ...) |
| </li> |
| <li><a href="examples/ntp/TimeClient.java">TimeClient</a> |
| This is an example program demonstrating how to use the TimeTCPClient |
| and TimeUDPClient classes. |
| This program connects to the default time service port of a |
| specified server, retrieves the time, and prints it to standard output. |
| </li> |
| </ul> |
| </subsection> |
| |
| <subsection name="TELNET (package: examples/telnet)"> |
| <ul> |
| <li><a href="examples/telnet/TelnetClientExample.java">TelnetClientExample</a> |
| This is a simple example of use of TelnetClient. |
| </li> |
| <li><a href="examples/telnet/WeatherTelnet.java">WeatherTelnet</a> |
| This is an example of a trivial use of the TelnetClient class. |
| It connects to the weather server at the University of Michigan, |
| um-weather.sprl.umich.edu port 3000, and allows the user to interact |
| with the server via standard input. |
| </li> |
| </ul> |
| </subsection> |
| |
| <subsection name="Unix utilities (package: examples/unix)"> |
| <ul> |
| <li><a href="examples/unix/chargen.java">chargen</a> |
| This is a simple example of use of chargen. |
| </li> |
| <li><a href="examples/unix/daytime.java">daytime</a> |
| This is a simple example of use of daytime. |
| </li> |
| <li><a href="examples/unix/echo.java">echo</a> |
| This is a simple example of use of echo. |
| </li> |
| <li><a href="examples/unix/finger.java">finger</a> |
| This is a simple example of use of finger. |
| </li> |
| <li><a href="examples/unix/fwhois.java">fwhois</a> |
| This is a simple example of use of fwhois. |
| </li> |
| <li><a href="examples/unix/rdate.java">rdate</a> |
| This is a simple example of use of rdate. |
| </li> |
| <li><a href="examples/unix/rexec.java">rexec</a> |
| This is a simple example of use of rexec. |
| </li> |
| <li><a href="examples/unix/rlogin.java">rlogin</a> |
| This is a simple example of use of rlogin. |
| </li> |
| <li><a href="examples/unix/rshell.java">rshell</a> |
| This is a simple example of use of rshell. |
| </li> |
| </ul> |
| </subsection> |
| |
| </section> |
| <section name="Further Information"> |
| <p> |
| For more info, see the JavaDoc, or look at some of the following articles: |
| <ul> |
| <li><a href="http://www.informit.com/guides/content.asp?g=java&seqNum=40">http://www.informit.com/guides/content.asp?g=java&seqNum=40</a>Jakarta Commons - Net Class Library</li> |
| <li><a href="http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3">http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3</a>Using the Jakarta Commons, Part 1</li> |
| <li><a href="http://safari.phptr.com/0131478303/ch04">http://safari.phptr.com/0131478303/ch04</a>Apache Jakarta Commons: Reusable Java Components</li> |
| </ul> |
| </p> |
| </section> |
| </body> |
| </document> |
| |