假设我们是要将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用于参数传递
扫描二维码关注公众号,回复:
919028 查看本文章
public class datasend{ client myclient=new client();//这儿我是选择新开一个线程来运行myclient.connct(host,port),即事先得保证服务器客户端已经连通
ChannelHandlerContext useMyctx=myclient.cl.myctx; useMyctx.writeandflush(data);//大功告成
4.在datasend.java内直接使用ctx传输数据!,