connect() — netty Function Reference
Architecture documentation for the connect() function in AbstractNioChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56["connect()"] 60188589_9b31_b825_db5f_7e5167ad54a1["AbstractNioUnsafe"] 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56 -->|defined in| 60188589_9b31_b825_db5f_7e5167ad54a1 26574636_288d_2b0f_03b7_7bccc5f17902["doConnect()"] 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56 -->|calls| 26574636_288d_2b0f_03b7_7bccc5f17902 123c8fda_87a2_fec2_8833_5ca69a354b9a["fulfillConnectPromise()"] 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56 -->|calls| 123c8fda_87a2_fec2_8833_5ca69a354b9a 52cb1857_2882_7fd9_866b_ec40ca61b7be["close()"] 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56 -->|calls| 52cb1857_2882_7fd9_866b_ec40ca61b7be style 7ffc6a56_2e62_6b7e_705f_75d97f5f0b56 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java lines 279–337
@Override
public final void connect(
final SocketAddress remoteAddress, final SocketAddress localAddress, final ChannelPromise promise) {
// Don't mark the connect promise as uncancellable as in fact we can cancel it as it is using
// non-blocking io.
if (promise.isDone() || !ensureOpen(promise)) {
return;
}
try {
if (connectPromise != null) {
// Already a connect in process.
throw new ConnectionPendingException();
}
boolean wasActive = isActive();
if (doConnect(remoteAddress, localAddress)) {
fulfillConnectPromise(promise, wasActive);
} else {
connectPromise = promise;
requestedRemoteAddress = remoteAddress;
// Schedule connect timeout.
final int connectTimeoutMillis = config().getConnectTimeoutMillis();
if (connectTimeoutMillis > 0) {
connectTimeoutFuture = eventLoop().schedule(new Runnable() {
@Override
public void run() {
ChannelPromise connectPromise = AbstractNioChannel.this.connectPromise;
if (connectPromise != null && !connectPromise.isDone()
&& connectPromise.tryFailure(new ConnectTimeoutException(
"connection timed out after " + connectTimeoutMillis + " ms: " +
remoteAddress))) {
close(voidPromise());
}
}
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
}
promise.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
// If the connect future is cancelled we also cancel the timeout and close the
// underlying socket.
if (future.isCancelled()) {
if (connectTimeoutFuture != null) {
connectTimeoutFuture.cancel(false);
}
connectPromise = null;
close(voidPromise());
}
}
});
}
} catch (Throwable t) {
promise.tryFailure(annotateConnectException(t, remoteAddress));
closeIfClosed();
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does connect() do?
connect() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java.
Where is connect() defined?
connect() is defined in transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java at line 279.
What does connect() call?
connect() calls 3 function(s): close, doConnect, fulfillConnectPromise.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free