<commit_before># Multiplex

An example of doing UDP connection multiplexing
that splits incoming UDP packets to two streams, "STUN Data" and "Application Data".

Usage:
```sh
$ go get github.com/gortc/stun/cmd/stun-multiplex
```

On "server":
```sh
$ stun-multiplex
local addr: 0.0.0.0:34690 stun server addr: 172.16.58.3:19302
public addr: 192.168.127.12:34690
Acting as server. Use following command to connect:
stun-multiplex 192.168.127.12:34690
```

On "client":
```sh
$ ./stun-multiplex 192.168.127.12:34690
local addr: 0.0.0.0:37551 stun server addr: 192.168.127.12:19302
public addr: 172.16.58.3:37551
Acting as client. Connecting to 192.168.127.12:34690
Writing 192.168.127.12:34690
demultiplex: [192.168.127.12:34690]: Hello peer
Got response from 192.168.127.12:34690: Hello peer
```

On "server" you will see `demultiplex: [172.16.58.3:37551]: Hello peer` message.<commit_msg>cmd:multiplex: be consistent with commands in readme<commit_after># Multiplex

An example of doing UDP connection multiplexing
that splits incoming UDP packets to two streams, "STUN Data" and "Application Data".

Usage:
```sh
$ go get github.com/gortc/stun/cmd/stun-multiplex
```

On "server":
```sh
$ stun-multiplex
local addr: 0.0.0.0:34690 stun server addr: 172.16.58.3:19302
public addr: 192.168.127.12:34690
Acting as server. Use following command to connect:
stun-multiplex 192.168.127.12:34690
```

On "client":
```sh
$ stun-multiplex 192.168.127.12:34690
local addr: 0.0.0.0:37551 stun server addr: 192.168.127.12:19302
public addr: 172.16.58.3:37551
Acting as client. Connecting to 192.168.127.12:34690
Writing 192.168.127.12:34690
demultiplex: [192.168.127.12:34690]: Hello peer
Got response from 192.168.127.12:34690: Hello peer
```

On "server" you will see `demultiplex: [172.16.58.3:37551]: Hello peer` message.
{'fraction_non_alphanumeric': 0.13678985107556535, 'fraction_numerical': 0.20408163265306123, 'mean_word_length': 4.651090342679128, 'pattern_counts': {'":': 4, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 26, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5497232', 'n_tokens_mistral': 940, 'n_tokens_neox': 671, 'n_words': 193}