如何使用 netcat 建立一个简单的聊天室?

如何使用 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来实现此功能吗?或者还有其他方法可以实现此功能吗?

答案1

你可以做类似的事情。

认为爱丽丝是服务器。她输入:

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

然后鲍勃连接到该服务器。他输入:

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

爱丽丝看到:

Hi Bob
Bob: Hi Alice

答案2

不久前,我实际上制作了一个可以在局域网上进行聊天(通过 IP 地址)的程序,肯定存在错误,我真的没有时间去维护它,但它应该可以给你一些开始的机会。

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

PS:我也尝试过添加文件共享支持:P

相关内容