Title: 2.6 - Summary
NavPrev: ch2.5-sample-udp-client.html
NavPrevText: 2.5 - Sample UDP client
NavUp: ch2-basics.html
NavUpText: Chapter 2 - Basics
NavNext: ../ch3-service/ch3-service.html
NavNextText: Chapter 3 - Service
Notice:    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.

# 2.6 - Summary

In this chapter, we looked at MINA based Application Architecture, for Client as well as Server. We also touched upon the implementation of Sample TCP Server/Client, and UDP Server and Client.

In the chapters to come we shall discuss about MINA Core constructs and advanced topics
