制作我自己的AsynchronousSocketChannel

时间:2013-02-21 02:03:50

标签: java networking asynchronous nio java-7

我正在制作一个需要将加密数据从一台PC发送到另一台PC的程序。而不是每次都明确地必须加密/解密数据然后通过使用AsynchronousSocketChannel发送它,我想知道我是否可以以某种方式扩展AsynchronousSocketChannel.write和AsynchronousSocketChannel.read的功能来为我做这件事。但是,似乎AsynchronousSocketChannel.write是一个最终方法。有没有办法制作我自己的AsynchronousSocketChannel,还是反直觉?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

你可以将它包装在你自己的班级中:

import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousSocketChannel;
import java.util.concurrent.Future;

public class EncryptedAsynchronousSocketChannel {
    private AsynchronousSocketChannel channel;
    public Future<Integer> read(ByteBuffer dst){
        return channel.read(dst);
    }
    public Future<Integer> write(ByteBuffer src){
        return channel.write(src);
    }
}