资源简介
代码利用mina框架实现了服务器端和客户端,客户端的登录请求、客户端向服务器端请求图片文件的功能。代码分为服务端和客户端,开发环境eclipse。服务器代码可在web项目中使用,客户端代码可以在Android开发时使用,本例子中没有将登录信息保存到IOSession中,在实际开发中,可以将登录信息保存到服务器端的iossion对象中,当前,也可以将其他会话有关的信息保存到IOSession中。
代码片段和文件信息
package edu.hbmy.taotao.mina;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFuture;
import org.apache.mina.core.future.IoFutureListener;
import org.apache.mina.core.future.ReadFuture;
import org.apache.mina.core.future.WriteFuture;
import org.apache.mina.core.service.IoService;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.serialization.objectSerializationCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.sf.json.JSONobject;
public class MinaClient {
private static final Logger log = LoggerFactory.getLogger(MinaClient.class);
/**
* 服务器IP地址
*/
private String serverIp = “127.0.0.1“;
/**
* 服务端口号
*/
private int PORT = 9898;
/**
* 服务器地址信息
*/
private InetSocketAddress serverAddres =new InetSocketAddress(serverIpPORT);
/**
* 连接对象
*/
private NioSocketConnector connector;
/**
* futuer对象
*/
private ConnectFuture future;
/**
* session对象
*/
private IoSession session;
/**
* 单例模式
*/
private static MinaClient instance = new MinaClient();
public static MinaClient getInstance() {
return instance;
}
public boolean connect(){
if (connector!=null&&connector.isActive()) {
System.out.println(“服务器已连接“);
return true;
}
connector = new NioSocketConnector();
connector.getSessionConfig().setUseReadOperation(true);
connector.setHandler(new objectHandler());
connector.getFilterChain().addLast(“codec“
new ProtocolCodecFilter(new objectSerializationCodecFactory()));
future = connector.connect(serverAddres);
//future.awaitUninterruptibly();//线程阻塞,等待连接服务器
future.addListener(new IoFutureListener() {
@Override
public void operationComplete(IoFuture future) {
// TODO Auto-generated method stub
if (MinaClient.this.future.isConnected()) {
session = future.getSession();
}
else {
System.out.println(“连接服务器失败“);
}
}
});
// if (future.isConnected()) {
// session = future.getSession();
// System.out.println(“服务器连接成功!“);
// }else {
// session = null;
// System.out.println(“服务器连接失败!“);
// }
return true;
}
public void closeClient()
{
if (null != session) {
IoService ioService = session.getService();
ioService.dispose();
System.out.println(“客户端关闭“);
}
}
public void sendPacket(Packet packetSendPacketResult result){
if (session !=null) {
WriteFuture writeFuture = session.write(packet);
writeFuture.addListener(new IoFutureListener() {
@Override
public void operationComplete(WriteFuture future) {
// T
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2018-09-01 16:18 第五章 mina通信\客户端\.me
文件 112170 2018-09-09 22:49 第五章 mina通信\客户端\.me
文件 20 2018-09-01 22:05 第五章 mina通信\客户端\.me
文件 32 2018-09-01 22:05 第五章 mina通信\客户端\.me
文件 250 2018-09-09 07:06 第五章 mina通信\客户端\.me
文件 438 2018-09-01 16:19 第五章 mina通信\客户端\.me
文件 250 2018-09-09 07:26 第五章 mina通信\客户端\.me
文件 5268 2018-09-06 23:04 第五章 mina通信\客户端\.me
文件 5179 2018-09-06 23:26 第五章 mina通信\客户端\.me
文件 5008 2018-09-06 23:30 第五章 mina通信\客户端\.me
文件 5160 2018-09-06 22:57 第五章 mina通信\客户端\.me
文件 75 2018-09-06 22:04 第五章 mina通信\客户端\.me
文件 110 2018-09-06 22:05 第五章 mina通信\客户端\.me
文件 6190 2018-09-09 06:51 第五章 mina通信\客户端\.me
文件 4886 2018-09-07 22:24 第五章 mina通信\客户端\.me
文件 5007 2018-09-06 23:30 第五章 mina通信\客户端\.me
文件 111 2018-09-06 22:43 第五章 mina通信\客户端\.me
文件 0 2018-09-06 22:04 第五章 mina通信\客户端\.me
文件 5018 2018-09-06 23:31 第五章 mina通信\客户端\.me
文件 5176 2018-09-06 23:10 第五章 mina通信\客户端\.me
文件 6629 2018-09-09 07:03 第五章 mina通信\客户端\.me
文件 5072 2018-09-06 23:21 第五章 mina通信\客户端\.me
文件 1353 2018-09-10 00:01 第五章 mina通信\客户端\.me
文件 4988 2018-09-06 23:29 第五章 mina通信\客户端\.me
文件 6682 2018-09-09 07:06 第五章 mina通信\客户端\.me
文件 6738 2018-09-09 08:39 第五章 mina通信\客户端\.me
文件 4793 2018-09-06 22:45 第五章 mina通信\客户端\.me
文件 6643 2018-09-09 07:08 第五章 mina通信\客户端\.me
文件 5260 2018-09-06 23:08 第五章 mina通信\客户端\.me
文件 3969 2018-09-06 22:07 第五章 mina通信\客户端\.me
............此处省略806个文件信息
相关资源
- web版基于Java的海康摄像头SDK车牌抓拍
- jsp+servlet+mysql实现的新闻发布管理系统
- jdk-8u73-linux-x64.tar.gz
- 高清 pdf 161M
- jdk1.8 64位安装包
- JAVA SE 9 文档(含API)
- java web项目 银行信贷系统
- 家政服务系统(JAVASSMBOOTSTRAPJSPAJAXMY
- java车牌识别技术
- java JDK1.9 API 中文参考文档+原版文档
- 《亮剑Java Web项目开发案例导航》DV
- Java界面设计工具SceneBuilder8.5.0版
- java web开发实战1200例 第二卷 源码
- Java核心技术第11版1卷+2卷 Core Java 11
- 架构探险:从零开始写JavaWeb框架_带书
- EffectiveJava中文版第二版.zip
- Java程序员面试笔试宝典-何昊_高清版
- JAVA-基于ssm社团信息管理系统.zip
- Java Web高级编_全本中文扫描版(part
- 《java程序员面试宝典(》杨磊) 高清
- jsp+ssm+mysql在线考试系统
- 基于java web的医院在线挂号系统
- 飞机大战Java源文件代码
- 04Java—SSM框架.xmind
- Java EE企业级应用开发教程Spring Sprin
- [Java EE实用教程第3版][郑阿奇][电子教
- JavaEE开发的颠覆者:spring boot实战 高
- Java必须知道的300个问题.pdf
- java源码包2
- 2018_IDEA版黑马旅游网初始项目文件(
评论
共有 条评论