<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Main xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/netcat/Main.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: Main.java 327113 2005-10-21 06:59:15Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *       <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/examples/netcat/package-summary.html">org.apache.mina.examples.netcat</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.net.InetSocketAddress;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.io.socket.SocketConnector;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <em>/**<em>*</em></em>
<a name="26" href="#26">26</a>  <em> * (&lt;b>Entry point&lt;/b>) NetCat client.  NetCat client connects to the specified</em>
<a name="27" href="#27">27</a>  <em> * endpoint and prints out received data.  NetCat client disconnects</em>
<a name="28" href="#28">28</a>  <em> * automatically when no data is read for 10 seconds. </em>
<a name="29" href="#29">29</a>  <em> * </em>
<a name="30" href="#30">30</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="31" href="#31">31</a>  <em> * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +0900 $,</em>
<a name="32" href="#32">32</a>  <em> */</em>
<a name="33" href="#33">33</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/netcat/Main.html">Main</a>
<a name="34" href="#34">34</a>  {
<a name="35" href="#35">35</a>      <strong>public</strong> <strong>static</strong> <strong>void</strong> main( String[] args ) throws Exception
<a name="36" href="#36">36</a>      {
<a name="37" href="#37">37</a>          <strong>if</strong>( args.length != 2 )
<a name="38" href="#38">38</a>          {
<a name="39" href="#39">39</a>              System.out.println( Main.<strong>class</strong>.getName() + <span class="string">" &lt;hostname> &lt;port>"</span> );
<a name="40" href="#40">40</a>              <strong>return</strong>;
<a name="41" href="#41">41</a>          }
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>          <em class="comment">// Create TCP/IP connector.</em>
<a name="44" href="#44">44</a>          SocketConnector connector = <strong>new</strong> SocketConnector();
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>          <em class="comment">// Start communication.</em>
<a name="47" href="#47">47</a>          connector.connect( <strong>new</strong> InetSocketAddress( args[ 0 ], Integer
<a name="48" href="#48">48</a>                  .parseInt( args[ 1 ] ) ), 60, <strong>new</strong> NetCatProtocolHandler() );
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

