代码利用mina框架实现了服务器端和客户端,客户端的登录请求、客户端向服务器端请求图片文件的功能。代码分为服务端和客户端,开发环境eclipse。服务器代码可在web项目中使用,客户端代码可以在Android开发时使用,本例子中没有将登录信息保存到IOSession中,在实际开发中,可以将登录信息保存到服务器端的iossion对象中,当前,也可以将其他会话有关的信息保存到IOSession中。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2018-09-01 16:18 第五章 mina通信客户端.metadata.lock
文件 112170 2018-09-09 22:49 第五章 mina通信客户端.metadata.log
文件 20 2018-09-01 22:05 第五章 mina通信客户端.metadata.mylyn.taskListIndexsegments.gen
文件 32 2018-09-01 22:05 第五章 mina通信客户端.metadata.mylyn.taskListIndexsegments_1
文件 250 2018-09-09 07:06 第五章 mina通信客户端.metadata.mylyn.tasks.xml.zip
文件 438 2018-09-01 16:19 第五章 mina通信客户端.metadata.mylyn
epositories.xml.zip
文件 250 2018-09-09 07:26 第五章 mina通信客户端.metadata.mylyn asks.xml.zip
文件 5268 2018-09-06 23:04 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history 501a27afe6b100181e63a8c03ea29b18
文件 5179 2018-09-06 23:26 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history c044e864e9b100181e63a8c03ea29b18
文件 5008 2018-09-06 23:30 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history1240d0cdd2e9b100181e63a8c03ea29b18
文件 5160 2018-09-06 22:57 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history1680cb17b6e5b100181e63a8c03ea29b18
文件 75 2018-09-06 22:04 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history1b4072c7edddb100181e63a8c03ea29b18
文件 110 2018-09-06 22:05 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history1f8071420bdeb100181e63a8c03ea29b18
文件 6190 2018-09-09 06:51 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history2404c7b68bab300181d4791cb07e08b4e
文件 4886 2018-09-07 22:24 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history2060d042faa9b200181068b0096c4b1382
文件 5007 2018-09-06 23:30 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history2360583cc6e9b100181e63a8c03ea29b18
文件 111 2018-09-06 22:43 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history25806c1e43e3b100181e63a8c03ea29b18
文件 0 2018-09-06 22:04 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history2be077e9b7ddb100181e63a8c03ea29b18
文件 5018 2018-09-06 23:31 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history2cd0f15219eab100181e63a8c03ea29b18
文件 5176 2018-09-06 23:10 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history305013c18de8b100181e63a8c03ea29b18
文件 6629 2018-09-09 07:03 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history32c06a3fdcbbb300181d4791cb07e08b4e
文件 5072 2018-09-06 23:21 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history3450ad163ee9b100181e63a8c03ea29b18
文件 1353 2018-09-10 00:01 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history39e075da174bb4001810eba554dd7c6452
文件 4988 2018-09-06 23:29 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history3b705f2abce9b100181e63a8c03ea29b18
文件 6682 2018-09-09 07:06 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history3cf06cbe0cbcb300181d4791cb07e08b4e
文件 6738 2018-09-09 08:39 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history3da08b19efc8b300181f4fdd6b1cb4ae2c
文件 4793 2018-09-06 22:45 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history4a0efa6d5e3b100181e63a8c03ea29b18
文件 6643 2018-09-09 07:08 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history4180173141bcb300181d4791cb07e08b4e
文件 5260 2018-09-06 23:08 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history4830f7eff1e6b100181e63a8c03ea29b18
文件 3969 2018-09-06 22:07 第五章 mina通信客户端.metadata.pluginsorg.eclipse.core.resources.history4a802b5e19e1b100181e63a8c03ea29b18
............此处省略806个文件信息
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
epositories.xm
文件 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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)