資源簡介
代碼利用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個文件信息
評論
共有 條評論