Ports
One row per listening socket, deliberately unmerged. This is the diagnostic view.

What is listed
Listening sockets from three separate enumerations:
- TCP over IPv4
- TCP over IPv6 — a distinct call, with link-local scope preserved
- UDP — both address families
Established outbound connections are not listed. LocalDocks is about what is listening on your machine, not about its network conversations.
Columns
| Column | Meaning |
|---|---|
| PORT | The port number. |
| PROTO | TCP or UDP. |
| ADDRESS | The bound address in presentation form — 127.0.0.1, 0.0.0.0, [::1], [::]. |
| PID | The owning process identifier, where one could be determined. |
| PROCESS | The owning executable name. |
| SERVICE | The service this socket belongs to, or — when the socket does not resolve to one. |
| STATE | LISTENING. |
Why rows are not merged
Services groups sockets by process, which is the right default for “what am I running”. Ports answers a different question. When a port is behaving oddly you need to see that a dev server is actually holding 127.0.0.1:5173 and [::1]:5173 — two sockets, two facts.
Sorting by port puts IPv4 before IPv6 within the same number, so a dual-stack pair reads as “the real one, and its v6 twin” rather than in ASCII order. The second row on a repeated port is tinted, so the pairing is visible at a glance.
The address is never hidden
A server bound to 0.0.0.0 is reachable from your network; one bound to 127.0.0.1 is not. LocalDocks shows both identically rather than filtering non-loopback bindings away, because the wider binding is the one worth noticing.
Sockets without an owner
Some sockets cannot be attributed to a process you own — the owner belongs to another account, or exited between the socket scan and the process scan. Those rows are shown because the socket genuinely exists, but they are informational only: no detail panel, no actions.
Port conflicts
Detecting a port bound by more than one process is not implemented in V1. The Overview tile and the status bar read — rather than a confident 0, because reporting zero conflicts from a detector that does not exist would be a claim the product cannot support.
Filtering
Chips for All, TCP and UDP, plus a free-text filter matching port, protocol, address, PID, process and service. Clicking a row opens the shared detail panel with the endpoint you arrived from marked.