Mina客户端问题
服务端是 C 写,客户端使用 Main
[code="java"]
public class MainClient {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
//创建 tcp/ip 连接
NioSocketConnector connector = new NioSocketConnector();
//创建接收数据的过滤器
DefaultIoFilterChainBuilder chin = connector.getFilterChain();
//设定这个过滤器将一行一行的读取数据
chin.addLast("mychin", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
//设定客户端消息处理器
connector.setHandler(new SamplMinaClientHandler());
//设置连接超时时间
connector.setConnectTimeout(30);
//连接到服务器
ConnectFuture future = connector.connect(new InetSocketAddress("192.168.2.201",31024));
future.awaitUninterruptibly();
future.getSession().getCloseFuture().awaitUninterruptibly();
connector.dispose();
}
}
[/code]
客户端处理器 SamplMinaClientHandler
[code="java"]
public class SamplMinaClientHandler extends IoHandlerAdapter {
//当客户端连接进入时
@Override
public void sessionOpened(IoSession session) throws Exception {
System.out.println("incomming 客户端: "+session.getRemoteAddress());
byte[] param = new byte[]{(byte)4,(byte)1,(byte)5};
IoBuffer io = IoBuffer.wrap(getA(param));
session.write(io);
}
//当客户端发送消息到达时
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
IoBuffer by = (IoBuffer)message;
byte[] b = new byte[by.limit()];
by.get(b);
System.out.println("服务器返回的数据:"+new String(b));
}
}
[/code]
问题: byte数组发送出去了 从TCP监控软件可以看到发出去的报文及返回的数据,为什么客户端接收不到 一直处于阻塞状态?