<!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=UTF-8" />
<title>Main xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/example/netcat/Main.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_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="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.example.netcat;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.ConnectFuture;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.nio.NioSocketConnector;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * (&lt;b&gt;Entry point&lt;/b&gt;) NetCat client.  NetCat client connects to the specified</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * endpoint and prints out received data.  NetCat client disconnects</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * automatically when no data is read for 10 seconds.</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> *</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @version $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (jeu, 26 jun 2008) $,</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/example/netcat/Main.html">Main</a> {
<a name="36" href="#36">36</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
<a name="37" href="#37">37</a>          <strong class="jxr_keyword">if</strong> (args.length != 2) {
<a name="38" href="#38">38</a>              System.out.println(Main.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">" &lt;hostname&gt; &lt;port&gt;"</span>);
<a name="39" href="#39">39</a>              <strong class="jxr_keyword">return</strong>;
<a name="40" href="#40">40</a>          }
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>          <em class="jxr_comment">// Create TCP/IP connector.</em>
<a name="43" href="#43">43</a>          <a href="../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a> connector = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>();
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>          <em class="jxr_comment">// Set connect timeout.</em>
<a name="46" href="#46">46</a>          connector.setConnectTimeoutMillis(30*1000L);
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>          <em class="jxr_comment">// Start communication.</em>
<a name="49" href="#49">49</a>          connector.setHandler(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/example/netcat/NetCatProtocolHandler.html">NetCatProtocolHandler</a>());
<a name="50" href="#50">50</a>          <a href="../../../../../org/apache/mina/core/future/ConnectFuture.html">ConnectFuture</a> cf = connector.connect(
<a name="51" href="#51">51</a>                  <strong class="jxr_keyword">new</strong> InetSocketAddress(args[0], Integer.parseInt(args[1])));
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>          <em class="jxr_comment">// Wait for the connection attempt to be finished.</em>
<a name="54" href="#54">54</a>          cf.awaitUninterruptibly();
<a name="55" href="#55">55</a>          cf.getSession().getCloseFuture().awaitUninterruptibly();
<a name="56" href="#56">56</a>          
<a name="57" href="#57">57</a>          connector.dispose();
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

