1. 程式人生 > >傳遞外部資料進入netty併發送出去(1)

傳遞外部資料進入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傳輸資料!,