как подключить несколько клиентов на сервере

nc -l -vv -p 7795

Это команда для прослушивания порта. Но я могу подключить только один клиент, используя (nc localhost 7795) в порт, сказать мне, как подключать несколько клиент к порту 7795

0
задан 10 November 2017 в 08:30

2 ответа

Утилита nc не может одновременно обрабатывать несколько подключений. Он может обрабатывать их последовательно.

Вы можете использовать опцию -k, чтобы соединения, которые «ожидают в очереди» от последующих клиентов, обрабатываются после того, как первый клиент отключится. Например:

# terminal A: 'server' $ nc -l -vv -p 8000 -k Listening on [0.0.0.0] (family 0, port 8000) Connection from localhost 45080 received! hi bye Connection from localhost 45082 received! hi bye #terminal B: 'client 1' nc localhost 8000 hi bye ^C

Хотя терминал C пытается установить соединение до разъединения терминала B, «сервер» на терминале A автоматически подбирает его и обрабатывает его позже.

# terminal C: 'client 2' nc localhost 8000 hi bye ^C

[EDIT-1]: Если вы что-то пишете и нуждаетесь в нескольких, вы можете рассмотреть возможность запуска нескольких экземпляров серверов nc 'на множестве предопределенных портов, а затем решить, с кем подключиться, но это может усложниться.

[EDIT-1]: Я нашел этот ответ в основном по тому же вопросу, в котором упоминаются другие альтернативы инструмента.

1
ответ дан 18 July 2018 в 03:33

Утилита nc не может одновременно обрабатывать несколько подключений. Он может обрабатывать их последовательно.

Вы можете использовать опцию -k, чтобы соединения, которые «ожидают в очереди» от последующих клиентов, обрабатываются после того, как первый клиент отключится. Например:

# terminal A: 'server' $ nc -l -vv -p 8000 -k Listening on [0.0.0.0] (family 0, port 8000) Connection from localhost 45080 received! hi bye Connection from localhost 45082 received! hi bye #terminal B: 'client 1' nc localhost 8000 hi bye ^C

Хотя терминал C пытается установить соединение до разъединения терминала B, «сервер» на терминале A автоматически подбирает его и обрабатывает его позже.

# terminal C: 'client 2' nc localhost 8000 hi bye ^C

[EDIT-1]: Если вы что-то пишете и нуждаетесь в нескольких, вы можете рассмотреть возможность запуска нескольких экземпляров серверов nc 'на множестве предопределенных портов, а затем решить, с кем подключиться, но это может усложниться.

[EDIT-1]: Я нашел этот ответ в основном по тому же вопросу, в котором упоминаются другие альтернативы инструмента.

1
ответ дан 24 July 2018 в 17:52

Другие вопросы по тегам:

Похожие вопросы: