Activeio :: core framework Introduction
Activeio is a Java asynchronous I/O framework that focuses on providing high -performance and scalable network programming solutions.The Activeio framework is built on the basis of Java NIO (New I/O). Through its core component, a powerful and flexible asynchronous network operation API provides.
The core component of Activeio is Activity.Each activity represents a network operation, such as reading, writing, connecting, accepting.Activities can be independent or as sub -activities of other activities, so as to form a hierarchical structure of the activity.Through the hierarchical structure of the activity, Activeio can handle complex asynchronous network operations.
The Activeio also provides an ActivityListener interface for applications to monitor and respond to event -related events.These events include the beginning of the event, the completion of the activity, the errors in the event, etc.By achieving an active listener interface, the application can take customized actions when needed.
Below is a sample code using the Activeio framework:
import org.activeio.ActiveIO;
import org.activeio.listener.ActivityAdapter;
import org.activeio.net.AIOReadActivity;
import org.activeio.net.AIOWriteActivity;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousSocketChannel;
public class ActiveIOExample {
public static void main(String[] args) {
try {
// Create asynchronous socket channel
AsynchronousSocketChannel channel = AsynchronousSocketChannel.open();
// Connect to the server
channel.connect(serverAddress, null, new CompletionHandler<Void, Void>() {
@Override
public void completed(Void result, Void attachment) {
// connection succeeded
// Create reading activities
AIOReadActivity readActivity = new AIOReadActivity(channel);
// Add reading activity listener
readActivity.addActivityListener(new ActivityAdapter() {
@Override
public void activityCompleted(Activity activity) {
// Read the activity to complete
ByteBuffer buffer = readActivity.getReadBuffer();
String message = new String(buffer.array(), buffer.position(), buffer.limit());
System.out.println("Received message: " + message);
}
@Override
public void activityFailed(Activity activity, Throwable exception) {
// Reading activities Fail
exception.printStackTrace();
}
});
// Create writing activities
AIOWriteActivity writeActivity = new AIOWriteActivity(channel);
// Add writing to the event listener
writeActivity.addActivityListener(new ActivityAdapter() {
@Override
public void activityCompleted(Activity activity) {
// Write the activity to complete
System.out.println("Message sent successfully!");
}
@Override
public void activityFailed(Activity activity, Throwable exception) {
// Failure to write the event
exception.printStackTrace();
}
});
// Start reading data
readActivity.start();
// Send data to the server
ByteBuffer buffer = ByteBuffer.wrap("Hello, server!".getBytes());
writeActivity.setWriteBuffer(buffer);
writeActivity.start();
}
@Override
public void failed(Throwable exc, Void attachment) {
// Connection failed
exc.printStackTrace();
}
});
// Start the Activeio framework
ActiveIO.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
The above example demonstrates the basic steps of using the Activeio framework for asynchronous network programming.First, create an asynchronous socket channel and connect to the server.Then create reading and writing activities, and add corresponding activity listeners.Finally, start reading and writing activities.When successful or failure, the corresponding activity listener method will be called separately.In this way, you can easily handle asynchronous network operations and perform custom operations as needed.