Как создать простой чат с помощью netcat?

Я в настоящее время работаю над проектом, и я реализовал простое приложение чата с помощью netcat библиотеки.

Клиенту предлагают ввести номер порта и команду

nc -l -p xxxx

где xxxx номер порта, вводимый клиентом.

Точно так же хост запрашивается тот же номер порта, и соединение устанавливается с помощью

nc <ip_address> -p xxxx

Однако это дает пустой опыт чата, поскольку он не показывает имя пользователя человека, вводящего сообщения, что-то как

hey
hello
what's up
Nothing

Вместо этого я хочу, чтобы это было чем-то как,

Foo : hey
Boo : hello
Foo : what's up
Boo : Nothing

Я могу использовать netcat достигнуть этой функциональности или - там что-либо еще, что делает это?

27
задан 14 September 2017 в 23:35

2 ответа

Можно сделать что-то вроде этого.

Предположите, что Alice является сервером. Она вводит:

mawk -W interactive '$0="Alice: "$0' | nc -l -p <port_number> <ip_of_alice>

Затем Bob соединяется с тем сервером. Он вводит:

mawk -W interactive '$0="Bob: "$0' | nc <ip_of_alice> <port_number>

mawk строки просто добавляют преднезаконченное имя человека к "чату". Нам нужно -W interactive установить освободило буфер, записи к stdout и строке буферизовали чтения от stdin.


Теперь типы Alice Hi Bob и видит:

Hi Bob

Bob видит:

Alice: Hi Bob

Типы Bob Hi Alice и видит:

Alice: Hi Bob
Hi Alice

Alice видит:

Hi Bob
Bob: Hi Alice
34
ответ дан 23 November 2019 в 01:05

Немного назад я действительно сделал одну программу, которая позволяет общаться в чате (через IP-адрес) в локальной сети. Должны быть ошибки. У меня действительно не было времени на ее обслуживание, но она должна вам кое-что дать. начать.

https://github.com/Aeres-u99/ncChat

PS: Я также пробовал добавить поддержку совместного использования файлов: P

0
ответ дан 28 December 2019 в 10:43

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

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