Home / Function/ bind() — netty Function Reference

bind() — netty Function Reference

Architecture documentation for the bind() function in AbstractChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  12b196ff_bea6_a14a_f304_feba219fd5ac["bind()"]
  330d05c9_85ca_2e57_92f5_e996fb442b81["AbstractUnsafe"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|defined in| 330d05c9_85ca_2e57_92f5_e996fb442b81
  30686258_744e_d516_027d_4264d61dbea3["assertEventLoop()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 30686258_744e_d516_027d_4264d61dbea3
  202ee03c_4c4c_7ecd_fbf8_3c6f0228198d["ensureOpen()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 202ee03c_4c4c_7ecd_fbf8_3c6f0228198d
  339df016_5efa_20aa_a1a2_a85f5797432c["equals()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 339df016_5efa_20aa_a1a2_a85f5797432c
  7b12dbe9_579e_a361_1b63_f18aed68f005["doBind()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 7b12dbe9_579e_a361_1b63_f18aed68f005
  09594916_b369_0dde_fab6_d2f3c2bd81b1["safeSetFailure()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 09594916_b369_0dde_fab6_d2f3c2bd81b1
  2a754051_6240_e8f0_34c4_f563ed9252f9["closeIfClosed()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| 2a754051_6240_e8f0_34c4_f563ed9252f9
  b76c888c_4df5_fe91_84fb_25d571b70e8a["invokeLater()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| b76c888c_4df5_fe91_84fb_25d571b70e8a
  bc29f802_b297_1770_91f3_caeb36e61763["safeSetSuccess()"]
  12b196ff_bea6_a14a_f304_feba219fd5ac -->|calls| bc29f802_b297_1770_91f3_caeb36e61763
  style 12b196ff_bea6_a14a_f304_feba219fd5ac fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/AbstractChannel.java lines 408–448

        @Override
        public final void bind(final SocketAddress localAddress, final ChannelPromise promise) {
            assertEventLoop();

            if (!promise.setUncancellable() || !ensureOpen(promise)) {
                return;
            }

            // See: https://github.com/netty/netty/issues/576
            if (Boolean.TRUE.equals(config().getOption(ChannelOption.SO_BROADCAST)) &&
                localAddress instanceof InetSocketAddress &&
                !((InetSocketAddress) localAddress).getAddress().isAnyLocalAddress() &&
                !PlatformDependent.isWindows() && !PlatformDependent.maybeSuperUser()) {
                // Warn a user about the fact that a non-root user can't receive a
                // broadcast packet on *nix if the socket is bound on non-wildcard address.
                logger.warn(
                        "A non-root user can't receive a broadcast packet if the socket " +
                        "is not bound to a wildcard address; binding to a non-wildcard " +
                        "address (" + localAddress + ") anyway as requested.");
            }

            boolean wasActive = isActive();
            try {
                doBind(localAddress);
            } catch (Throwable t) {
                safeSetFailure(promise, t);
                closeIfClosed();
                return;
            }

            if (!wasActive && isActive()) {
                invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        pipeline.fireChannelActive();
                    }
                });
            }

            safeSetSuccess(promise);
        }

Domain

Subdomains

Frequently Asked Questions

What does bind() do?
bind() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/AbstractChannel.java.
Where is bind() defined?
bind() is defined in transport/src/main/java/io/netty/channel/AbstractChannel.java at line 408.
What does bind() call?
bind() calls 8 function(s): assertEventLoop, closeIfClosed, doBind, ensureOpen, equals, invokeLater, safeSetFailure, safeSetSuccess.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free