传递外部数据进入netty并发送出去(1)

假设我们是要将datasend.java  内的data  数据通过netty的client.java,clientHandler.java传递至服务器端。

本人暂时想到两种方法来解决该问题。

思路1:我们只需要获取到clientHandler 内部的 ChannelHandlerContext  ctx,再使用ctx.writeandflush(data)不就解决了。

做法如下:

public class clientHandler extends SimpleChannelInboundHandler<Object> {
    public ChannelHandlerContext myctx;

1.在clientHandler 内定义一个myctx用于参数传递;

public void channelActive(ChannelHandlerContext ctx) throws Exception {
myctx = ctx;

2.在channelActive内部将已有的ctx传递给myctx;

public class client {
    public clientHandler cl=new clientHandler();...........
        ch.pipeline().addLast(cl);//此时就不能再继续使用addLast(new clientHander())了

3.在client内定义一个clientHandler用于参数传递

public class datasend{    
 client myclient=new client();//这儿我是选择新开一个线程来运行myclient.connct(host,port),即事先得保证服务器客户端已经连通
ChannelHandlerContext useMyctx=myclient.cl.myctx;
useMyctx.writeandflush(data);//大功告成

4.在datasend.java内直接使用ctx传输数据!,

猜你喜欢

转载自blog.csdn.net/u013051947/article/details/80342792
今日推荐