Section outline

    • BB2-L26-M1 — Addresses, ports, and the client–server model
      Goal: Understand what “connect to host:port” means and why networking is basically I/O plus failure.

    • BB2-L26-M2 — TCP vs UDP: guarantees, costs, and use cases
      Goal: Know exactly what TCP guarantees, what UDP doesn’t, and how to choose.

    • BB2-L26-M3 — TCP client in Java: sockets, streams, timeouts, framing
      Goal: Write a TCP client that doesn’t hang, doesn’t corrupt messages, and cleans up correctly.

    • BB2-L26-M4 — TCP server in Java: ServerSocket, concurrency, thread pools, half-close
      Goal: Build a server that handles multiple clients without collapsing under load.

    • BB2-L26-M5 — UDP in Java: datagrams and best-effort design
      Goal: Understand UDP’s strengths and build minimal reliability when required.

    • BB2-L26-M6 — HTTP essentials: methods, status codes, headers, payloads
      Goal: Understand HTTP as the language of APIs: request/response, correctness signals, and meaning.

    • BB2-L26-M7 — Java HttpClient: sync/async, body handlers, safe handling
      Goal: Use the modern Java HTTP client model correctly and defensively.

    • BB2-L26-M8 — Simple HTTP server mental model and WebSockets concept
      Goal: Understand servers as handlers + shared logic, and why WebSockets exist for real-time systems.