### 前言
之前已经讲过了`Netty`实现的`UDP`通讯。大家感兴趣的可以参考以下文章:
[Netty实现UDP客户端](http://www.demodashi.com/demo/17159.html)
[Netty实现UDP服务端](http://www.demodashi.com/demo/17160.html)
那么今天给大家介绍一个新的通讯框架——`MINA`,之所以要介绍`mina`,是因为它在通讯`长连接`方面有比较大的优势。今天就让我们来了解下`mina`利用`tcp`实现`长连接客户端`吧。
今天涉及以下内容:
1. mina官网及实现客户端需要的jar包
2. mina客户端的几个类
3. TmClientManager在activity中的使用
4. 通讯前提及需要注意的问题
5. 效果图和项目结构图
先来波效果图
![效果图.gif](/contentImages/image/20200623/cR0vcxzpG4oyZaqeo9l.gif)
#### 一. mina官网及实现客户端需要的jar包
`mina`是一个通讯长连接框架,其官网如下:
[mina官网](http://mina.apache.org/)
利用`mina`实现`tcp长连接客户端`需要以下`jar`包:
```
mina-core-2.0.16.jar
slf4j-android-1.7.21.jar
slf4j-api-1.7.21.jar
```
下载地址:[mina_tcp客户端jar.zip](https://download.csdn.net/download/Burn_yourself/12542994)
大家将以上jar下载下来,然后导入到自己的项目中。
#### 二.mina客户端的几个类
实现`mina`长连接客户端我写了几个类,这几个类分工处理通讯的各个环节,下面对它们进行一个简单的介绍:
- SessionManager:客户端用于收发消息的`session`,此类单例,利用它可以向服务端发送