<!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>AcceptorTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<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.echoserver;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.DatagramPacket;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.DatagramSocket;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.net.Socket;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.net.SocketTimeoutException;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.example.echoserver.ssl.SslServerSocketFactory;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.example.echoserver.ssl.SslSocketFactory;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">/**</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * Tests echo server example.</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> *</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * @version $Rev: 594505 $, $Date: 2007-11-13 13:17:27 +0100 (Tue, 13 Nov 2007) $</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> */</em>
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/example/echoserver/AcceptorTest.html">AcceptorTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/example/echoserver/AbstractTest.html">AbstractTest</a> {
<a name="38" href="#38">38</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/example/echoserver/AcceptorTest.html">AcceptorTest</a>() {
<a name="39" href="#39">39</a>      }
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTCP() <strong class="jxr_keyword">throws</strong> Exception {
<a name="42" href="#42">42</a>          testTCP0(<strong class="jxr_keyword">new</strong> Socket(<span class="jxr_string">"127.0.0.1"</span>, port));
<a name="43" href="#43">43</a>      }
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTCPWithSSL() <strong class="jxr_keyword">throws</strong> Exception {
<a name="46" href="#46">46</a>          <em class="jxr_comment">// Add an SSL filter</em>
<a name="47" href="#47">47</a>          useSSL = <strong class="jxr_keyword">true</strong>;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>          <em class="jxr_comment">// Create a echo client with SSL factory and test it.</em>
<a name="50" href="#50">50</a>          SslSocketFactory.setSslEnabled(<strong class="jxr_keyword">true</strong>);
<a name="51" href="#51">51</a>          SslServerSocketFactory.setSslEnabled(<strong class="jxr_keyword">true</strong>);
<a name="52" href="#52">52</a>          testTCP0(SslSocketFactory.getSocketFactory().createSocket(
<a name="53" href="#53">53</a>                  <span class="jxr_string">"localhost"</span>, port));
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testTCP0(Socket client) <strong class="jxr_keyword">throws</strong> Exception {
<a name="57" href="#57">57</a>          client.setSoTimeout(3000);
<a name="58" href="#58">58</a>          byte[] writeBuf = <strong class="jxr_keyword">new</strong> byte[16];
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i++) {
<a name="61" href="#61">61</a>              fillWriteBuffer(writeBuf, i);
<a name="62" href="#62">62</a>              client.getOutputStream().write(writeBuf);
<a name="63" href="#63">63</a>          }
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          byte[] readBuf = <strong class="jxr_keyword">new</strong> byte[writeBuf.length];
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i++) {
<a name="68" href="#68">68</a>              fillWriteBuffer(writeBuf, i);
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>              <strong class="jxr_keyword">int</strong> readBytes = 0;
<a name="71" href="#71">71</a>              <strong class="jxr_keyword">while</strong> (readBytes &lt; readBuf.length) {
<a name="72" href="#72">72</a>                  <strong class="jxr_keyword">int</strong> nBytes = client.getInputStream().read(readBuf, readBytes,
<a name="73" href="#73">73</a>                          readBuf.length - readBytes);
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>                  <strong class="jxr_keyword">if</strong> (nBytes &lt; 0) {
<a name="76" href="#76">76</a>                      fail(<span class="jxr_string">"Unexpected disconnection."</span>);
<a name="77" href="#77">77</a>                  }
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>                  readBytes += nBytes;
<a name="80" href="#80">80</a>              }
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>              assertEquals(writeBuf, readBuf);
<a name="83" href="#83">83</a>          }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>          client.setSoTimeout(500);
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">try</strong> {
<a name="88" href="#88">88</a>              client.getInputStream().read();
<a name="89" href="#89">89</a>              fail(<span class="jxr_string">"Unexpected incoming data."</span>);
<a name="90" href="#90">90</a>          } <strong class="jxr_keyword">catch</strong> (SocketTimeoutException e) {
<a name="91" href="#91">91</a>          }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          client.getInputStream().close();
<a name="94" href="#94">94</a>          client.close();
<a name="95" href="#95">95</a>      }
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUDP() <strong class="jxr_keyword">throws</strong> Exception {
<a name="98" href="#98">98</a>          DatagramSocket client = <strong class="jxr_keyword">new</strong> DatagramSocket();
<a name="99" href="#99">99</a>          client.connect(<strong class="jxr_keyword">new</strong> InetSocketAddress(<span class="jxr_string">"127.0.0.1"</span>, port));
<a name="100" href="#100">100</a>         client.setSoTimeout(500);
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>         byte[] writeBuf = <strong class="jxr_keyword">new</strong> byte[16];
<a name="103" href="#103">103</a>         byte[] readBuf = <strong class="jxr_keyword">new</strong> byte[writeBuf.length];
<a name="104" href="#104">104</a>         DatagramPacket wp = <strong class="jxr_keyword">new</strong> DatagramPacket(writeBuf, writeBuf.length);
<a name="105" href="#105">105</a>         DatagramPacket rp = <strong class="jxr_keyword">new</strong> DatagramPacket(readBuf, readBuf.length);
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i++) {
<a name="108" href="#108">108</a>             fillWriteBuffer(writeBuf, i);
<a name="109" href="#109">109</a>             client.send(wp);
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>             client.receive(rp);
<a name="112" href="#112">112</a>             assertEquals(writeBuf.length, rp.getLength());
<a name="113" href="#113">113</a>             assertEquals(writeBuf, readBuf);
<a name="114" href="#114">114</a>         }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">try</strong> {
<a name="117" href="#117">117</a>             client.receive(rp);
<a name="118" href="#118">118</a>             fail(<span class="jxr_string">"Unexpected incoming data."</span>);
<a name="119" href="#119">119</a>         } <strong class="jxr_keyword">catch</strong> (SocketTimeoutException e) {
<a name="120" href="#120">120</a>         }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>         client.close();
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fillWriteBuffer(byte[] writeBuf, <strong class="jxr_keyword">int</strong> i) {
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = writeBuf.length - 1; j &gt;= 0; j--) {
<a name="127" href="#127">127</a>             writeBuf[j] = (byte) (j + i);
<a name="128" href="#128">128</a>         }
<a name="129" href="#129">129</a>     }
<a name="130" href="#130">130</a> 
<a name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) {
<a name="132" href="#132">132</a>         junit.textui.TestRunner.run(AcceptorTest.<strong class="jxr_keyword">class</strong>);
<a name="133" href="#133">133</a>     }
<a name="134" href="#134">134</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

