您的位置:首页 > 其它

Mina框架实现最简单的服务端(五)

2016-03-31 19:26 260 查看
写个Mina客户端测试服务端功能。需要有个简单的编码器。

package minabase.client;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Date;

import minabase.server.MyCodecDecoder;
import minabase.server.MyCodecEncoder;
import minabase.server.MyCodecFactory;

import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

/**
* Class Description: 客户端,用于测试服务端功能
* Copyright:   Copyright (c)
*/
public class client
{
private static IoSession session = null;

private static String ip = "10.57.46.155";

private static int port = 8100;

/**
* @param args
*/
public static void main(String[] args)
{
String codecName = "US-ASCII";

IoConnector connector = new NioSocketConnector();
connector.setConnectTimeout(30000);

//框架内部实现编解码器,规则为各消息以换行符分隔
connector.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new MyCodecFactory(new MyCodecDecoder(
Charset.forName(codecName)), new MyCodecEncoder(Charset.forName(codecName)))));

connector.setHandler(new ClientHandler());

try
{
ConnectFuture future = connector.connect(new InetSocketAddress(ip, port));

future.awaitUninterruptibly();

session = future.getSession();

sendMsg();
}
catch (Exception e)
{
e.printStackTrace();
}
}

private static void sendMsg()
{
long send = 0;
Date startTime = new Date();
while (true)
{
Date curTime = new Date();
if (curTime.getTime() - startTime.getTime() > 1000)
{
break;
}
session.write("hello: " + send);
send++;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: