Sac*_*ath 29 command-line networking c++ netcat
我目前正在做一个项目,我已经使用这些netcat库实现了一个简单的聊天应用程序。
提示客户端输入端口号和命令
nc -l -p xxxx
Run Code Online (Sandbox Code Playgroud)
xxxx客户端输入的端口号在哪里。
同样,主机会被提示输入相同的端口号,并使用以下命令建立连接
nc <ip_address> -p xxxx
Run Code Online (Sandbox Code Playgroud)
但是,这会提供空白聊天体验,因为它不会显示键入消息的人的用户名,例如
hey
hello
what's up
Nothing
Run Code Online (Sandbox Code Playgroud)
相反,我希望它是这样的,
Foo : hey
Boo : hello
Foo : what's up
Boo : Nothing
Run Code Online (Sandbox Code Playgroud)
我可以用它netcat来实现这个功能还是有其他任何东西可以做到这一点?
cha*_*aos 36
你可以做这样的事情。
假设Alice是服务器。她打字:
mawk -W interactive '$0="Alice: "$0' | nc -l -p <port_number> <ip_of_alice>
Run Code Online (Sandbox Code Playgroud)
然后Bob连接到该服务器。他打字:
mawk -W interactive '$0="Bob: "$0' | nc <ip_of_alice> <port_number>
Run Code Online (Sandbox Code Playgroud)
这些mawk行只是将人的名字添加到“聊天”中。我们需要-W interactive将无缓冲写入设置为 stdout 并从 stdin 设置行缓冲读取。
现在爱丽丝输入Hi Bob并看到:
Hi Bob
Run Code Online (Sandbox Code Playgroud)
鲍勃看到:
Alice: Hi Bob
Run Code Online (Sandbox Code Playgroud)
Bob 输入Hi Alice并查看:
Alice: Hi Bob
Hi Alice
Run Code Online (Sandbox Code Playgroud)
爱丽丝看到:
Hi Bob
Bob: Hi Alice
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19148 次 |
| 最近记录: |