<!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>AcceptorTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: AcceptorTest.java 210062 2005-07-11 03:52:38Z 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/echoserver/package-summary.html">org.apache.mina.examples.echoserver</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.io.IOException;
<a name="22" href="#22">22</a>  <strong>import</strong> java.net.InetAddress;
<a name="23" href="#23">23</a>  <strong>import</strong> java.net.ServerSocket;
<a name="24" href="#24">24</a>  <strong>import</strong> java.net.Socket;
<a name="25" href="#25">25</a>  <strong>import</strong> java.net.SocketTimeoutException;
<a name="26" href="#26">26</a>  <strong>import</strong> java.net.UnknownHostException;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong>import</strong> javax.net.ServerSocketFactory;
<a name="29" href="#29">29</a>  <strong>import</strong> javax.net.SocketFactory;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.commons.net.EchoTCPClient;
<a name="32" href="#32">32</a>  <strong>import</strong> org.apache.commons.net.EchoUDPClient;
<a name="33" href="#33">33</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="34" href="#34">34</a>  <strong>import</strong> org.apache.mina.examples.echoserver.ssl.BogusSSLContextFactory;
<a name="35" href="#35">35</a>  <strong>import</strong> org.apache.mina.examples.echoserver.ssl.SSLServerSocketFactory;
<a name="36" href="#36">36</a>  <strong>import</strong> org.apache.mina.examples.echoserver.ssl.SSLSocketFactory;
<a name="37" href="#37">37</a>  <strong>import</strong> org.apache.mina.io.IoAcceptor;
<a name="38" href="#38">38</a>  <strong>import</strong> org.apache.mina.io.filter.SSLFilter;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em>/**<em>*</em></em>
<a name="41" href="#41">41</a>  <em> * Tests echo server example.</em>
<a name="42" href="#42">42</a>  <em> * </em>
<a name="43" href="#43">43</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="44" href="#44">44</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="45" href="#45">45</a>  <em> */</em>
<a name="46" href="#46">46</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/echoserver/AcceptorTest.html">AcceptorTest</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/examples/echoserver/AbstractTest.html">AbstractTest</a>
<a name="47" href="#47">47</a>  {
<a name="48" href="#48">48</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/examples/echoserver/AcceptorTest.html">AcceptorTest</a>()
<a name="49" href="#49">49</a>      {
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong>public</strong> <strong>void</strong> testTCP() throws Exception
<a name="53" href="#53">53</a>      {
<a name="54" href="#54">54</a>          EchoTCPClient client = <strong>new</strong> EchoTCPClient();
<a name="55" href="#55">55</a>          testTCP0( client );
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong>public</strong> <strong>void</strong> testTCPWithSSL() throws Exception
<a name="59" href="#59">59</a>      {
<a name="60" href="#60">60</a>          <em class="comment">// Add an SSL filter</em>
<a name="61" href="#61">61</a>          SSLFilter sslFilter =
<a name="62" href="#62">62</a>              <strong>new</strong> SSLFilter( BogusSSLContextFactory.getInstance( <strong>true</strong> ) );
<a name="63" href="#63">63</a>          IoAcceptor acceptor = registry.getIoAcceptor( TransportType.SOCKET );
<a name="64" href="#64">64</a>          acceptor.getFilterChain().addLast( <span class="string">"SSL"</span>, sslFilter );
<a name="65" href="#65">65</a>          
<a name="66" href="#66">66</a>          <em class="comment">// Create a commons-net socket factory</em>
<a name="67" href="#67">67</a>          SSLSocketFactory.setSslEnabled(<strong>true</strong>);
<a name="68" href="#68">68</a>          SSLServerSocketFactory.setSslEnabled(<strong>true</strong>);
<a name="69" href="#69">69</a>          org.apache.commons.net.SocketFactory factory = <strong>new</strong> org.apache.commons.net.SocketFactory() {
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>              <strong>private</strong> SocketFactory f = SSLSocketFactory.getSocketFactory();
<a name="72" href="#72">72</a>              <strong>private</strong> ServerSocketFactory ssf = SSLServerSocketFactory.getServerSocketFactory();
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>              <strong>public</strong> Socket createSocket( String arg0, <strong>int</strong> arg1 ) throws UnknownHostException, IOException
<a name="75" href="#75">75</a>              {
<a name="76" href="#76">76</a>                  <strong>return</strong> f.createSocket(arg0, arg1);
<a name="77" href="#77">77</a>              }
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>              <strong>public</strong> Socket createSocket( InetAddress arg0, <strong>int</strong> arg1 ) throws IOException
<a name="80" href="#80">80</a>              {
<a name="81" href="#81">81</a>                  <strong>return</strong> f.createSocket(arg0, arg1);
<a name="82" href="#82">82</a>              }
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>              <strong>public</strong> Socket createSocket( String arg0, <strong>int</strong> arg1, InetAddress arg2, <strong>int</strong> arg3 ) throws UnknownHostException, IOException
<a name="85" href="#85">85</a>              {
<a name="86" href="#86">86</a>                  <strong>return</strong> f.createSocket(arg0, arg1, arg2, arg3);
<a name="87" href="#87">87</a>              }
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>              <strong>public</strong> Socket createSocket( InetAddress arg0, <strong>int</strong> arg1, InetAddress arg2, <strong>int</strong> arg3 ) throws IOException
<a name="90" href="#90">90</a>              {
<a name="91" href="#91">91</a>                  <strong>return</strong> f.createSocket(arg0, arg1, arg2, arg3);
<a name="92" href="#92">92</a>              }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>              <strong>public</strong> ServerSocket createServerSocket( <strong>int</strong> arg0 ) throws IOException
<a name="95" href="#95">95</a>              {
<a name="96" href="#96">96</a>                  <strong>return</strong> ssf.createServerSocket(arg0);
<a name="97" href="#97">97</a>              }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>              <strong>public</strong> ServerSocket createServerSocket( <strong>int</strong> arg0, <strong>int</strong> arg1 ) throws IOException
<a name="100" href="#100">100</a>             {
<a name="101" href="#101">101</a>                 <strong>return</strong> ssf.createServerSocket(arg0, arg1);
<a name="102" href="#102">102</a>             }
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>             <strong>public</strong> ServerSocket createServerSocket( <strong>int</strong> arg0, <strong>int</strong> arg1, InetAddress arg2 ) throws IOException
<a name="105" href="#105">105</a>             {
<a name="106" href="#106">106</a>                 <strong>return</strong> ssf.createServerSocket(arg0, arg1, arg2);
<a name="107" href="#107">107</a>             }
<a name="108" href="#108">108</a>             
<a name="109" href="#109">109</a>         };
<a name="110" href="#110">110</a>         
<a name="111" href="#111">111</a>         <em class="comment">// Create a echo client with SSL factory and test it.</em>
<a name="112" href="#112">112</a>         EchoTCPClient client = <strong>new</strong> EchoTCPClient();
<a name="113" href="#113">113</a>         client.setSocketFactory( factory );
<a name="114" href="#114">114</a>         testTCP0( client );
<a name="115" href="#115">115</a>     }
<a name="116" href="#116">116</a>     
<a name="117" href="#117">117</a>     <strong>private</strong> <strong>void</strong> testTCP0( EchoTCPClient client ) throws Exception
<a name="118" href="#118">118</a>     {
<a name="119" href="#119">119</a>         client.connect( InetAddress.getLocalHost(), port );
<a name="120" href="#120">120</a>         byte[] writeBuf = <strong>new</strong> byte[ 16 ];
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>         <strong>for</strong>( <strong>int</strong> i = 0; i &lt; 10; i ++ )
<a name="123" href="#123">123</a>         {
<a name="124" href="#124">124</a>             fillWriteBuffer( writeBuf, i );
<a name="125" href="#125">125</a>             client.getOutputStream().write( writeBuf );
<a name="126" href="#126">126</a>         }
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>         client.setSoTimeout( 30000 );
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         byte[] readBuf = <strong>new</strong> byte[ writeBuf.length ];
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>         <strong>for</strong>( <strong>int</strong> i = 0; i &lt; 10; i ++ )
<a name="133" href="#133">133</a>         {
<a name="134" href="#134">134</a>             fillWriteBuffer( writeBuf, i );
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>             <strong>int</strong> readBytes = 0;
<a name="137" href="#137">137</a>             <strong>while</strong>( readBytes &lt; readBuf.length )
<a name="138" href="#138">138</a>             {
<a name="139" href="#139">139</a>                 <strong>int</strong> nBytes = client.getInputStream().read( readBuf,
<a name="140" href="#140">140</a>                         readBytes, readBuf.length - readBytes );
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>                 <strong>if</strong>( nBytes &lt; 0 )
<a name="143" href="#143">143</a>                     fail( <span class="string">"Unexpected disconnection."</span> );
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>                 readBytes += nBytes;
<a name="146" href="#146">146</a>             }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>             assertEquals( writeBuf, readBuf );
<a name="149" href="#149">149</a>         }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         client.setSoTimeout( 500 );
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>         <strong>try</strong>
<a name="154" href="#154">154</a>         {
<a name="155" href="#155">155</a>             client.getInputStream().read();
<a name="156" href="#156">156</a>             fail( <span class="string">"Unexpected incoming data."</span> );
<a name="157" href="#157">157</a>         }
<a name="158" href="#158">158</a>         <strong>catch</strong>( SocketTimeoutException e )
<a name="159" href="#159">159</a>         {
<a name="160" href="#160">160</a>         }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         client.disconnect();
<a name="163" href="#163">163</a>     }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>     <strong>public</strong> <strong>void</strong> testUDP() throws Exception
<a name="166" href="#166">166</a>     {
<a name="167" href="#167">167</a>         EchoUDPClient client = <strong>new</strong> EchoUDPClient();
<a name="168" href="#168">168</a>         client.open();
<a name="169" href="#169">169</a>         client.setSoTimeout( 3000 );
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>         byte[] writeBuf = <strong>new</strong> byte[ 16 ];
<a name="172" href="#172">172</a>         byte[] readBuf = <strong>new</strong> byte[ writeBuf.length ];
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>         client.setSoTimeout( 500 );
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>         <strong>for</strong>( <strong>int</strong> i = 0; i &lt; 10; i ++ )
<a name="177" href="#177">177</a>         {
<a name="178" href="#178">178</a>             fillWriteBuffer( writeBuf, i );
<a name="179" href="#179">179</a>             client.send( writeBuf, writeBuf.length, InetAddress
<a name="180" href="#180">180</a>                     .getLocalHost(), port );
<a name="181" href="#181">181</a> 
<a name="182" href="#182">182</a>             assertEquals( readBuf.length, client.receive( readBuf,
<a name="183" href="#183">183</a>                     readBuf.length ) );
<a name="184" href="#184">184</a>             assertEquals( writeBuf, readBuf );
<a name="185" href="#185">185</a>         }
<a name="186" href="#186">186</a> 
<a name="187" href="#187">187</a>         <strong>try</strong>
<a name="188" href="#188">188</a>         {
<a name="189" href="#189">189</a>             client.receive( readBuf );
<a name="190" href="#190">190</a>             fail( <span class="string">"Unexpected incoming data."</span> );
<a name="191" href="#191">191</a>         }
<a name="192" href="#192">192</a>         <strong>catch</strong>( SocketTimeoutException e )
<a name="193" href="#193">193</a>         {
<a name="194" href="#194">194</a>         }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>         client.close();
<a name="197" href="#197">197</a>     }
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>     <strong>private</strong> <strong>void</strong> fillWriteBuffer( byte[] writeBuf, <strong>int</strong> i )
<a name="200" href="#200">200</a>     {
<a name="201" href="#201">201</a>         <strong>for</strong>( <strong>int</strong> j = writeBuf.length - 1; j >= 0; j -- )
<a name="202" href="#202">202</a>         {
<a name="203" href="#203">203</a>             writeBuf[ j ] = ( byte ) ( j + i );
<a name="204" href="#204">204</a>         }
<a name="205" href="#205">205</a>     }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>     <strong>public</strong> <strong>static</strong> <strong>void</strong> main( String[] args )
<a name="208" href="#208">208</a>     {
<a name="209" href="#209">209</a>         junit.textui.TestRunner.run( AcceptorTest.<strong>class</strong> );
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

