【问题标题】:How to use cat with socket?如何将猫与套接字一起使用?
【发布时间】:2012-08-09 06:47:52
【问题描述】:

在阅读cat 命令的源代码时,我发现cat 命令支持从套接字读取。您可以在http://src.gnu-darwin.org/src/bin/cat/cat.c.html 查看源代码。但是我从来没有在 socket 中使用过这个命令:只是快速查看一个文件或连接多个文件。我可以用cat + 套接字做什么?你能举一个使用cat命令从套接字读取的有趣例子吗?谢谢。

【问题讨论】:

  • 无论你做什么,都不要把你的猫插在插座上:它可能会触电:)(对不起,我无法抗拒)。
  • 你有这个问题的编程上下文吗?
  • 这个问题似乎是题外话,因为它是关于使用 unix 工具的。它会更适合Unix & Linux

标签: sockets unix cat


【解决方案1】:

使用“netcat”,在 unix/linux 上是命令nc。你很可能想成为客户端套接字,所以像cat <filename> | nc <ip> <port>

【讨论】:

  • cat 示例的作用只是将内容传递给/dev/stdout(就像我们一直做的那样)。所以,我想知道,我们可以使用cat 作为服务器端吗?而不是nc -l <ip> <port>?
【解决方案2】:

您找到的 cat 源代码包含一些在您尝试 cat 套接字时调用 socket() 和 connect() 的魔法。它不包含任何listen() 或accept(),所以它不可能做“服务器端”的事情。它适用于 unix 域套接字,而不是 inet 套接字,所以不要认为它是用于在实际网络中搜索东西。 Unix 域套接字只是本地进程间通信的端点。

我无法想象他们在向 cat 添加此功能时会想到什么用例。

【讨论】:

  • 谢谢。冷静点,你说的是完全正确的:我在代码中没有找到listen。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多