我正在编写一个程序,需要将加密数据从一台PC发送到另一台PC。我想知道是否可以通过某种方式扩展AsynchronousSocketChannel.write和AsynchronousSocketChannel.read的功能来为我做到这一点,而不是每次都要显式地加密/解密数据然后再使用AsynchronousSocketChannel发送数据。但是,似乎AsynchronousSocketChannel.write是最终方法。有什么办法可以创建自己的AsynchronousSocketChannel,还是违反直觉的?
提前谢谢了。
最佳答案
您可以将其包装在自己的类中:
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);
}
}