我目前正在开展一个项目,并使用这些库实现了一个简单的聊天应用程序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