At least one machine must be a server, in the sense that it needs to open the port that it is listening on. It is a fact of life with all connections; when one machine opens the connection, there must be another machine on the other end that responds. Without this, it is impossible to establish a connection.
If you want one or all computers to listen on the port, you can configure WebRTC on the local network. In this case, you will not need STUN or TURN because there is no NAT traversal.
WebRTC does not require STUN or TURN on the local network. WebRTC endpoints can generate local ICE candidates using their known local network addresses. They exchange via signaling, either directly in the SDP, or as ICE candidates for the ICE trickle. A peer-to-peer connection can be established without the need for a connection to a STUN server external to the local network.
mattm source share