【问题标题】:How to send data over internet through console如何通过控制台通过 Internet 发送数据
【发布时间】:2010-11-01 03:00:51
【问题描述】:

我必须开发一个应用程序,我将从并行端口接收数据并将其发送到互联网。此应用程序是为运行 linux 的嵌入式设备开发的。请建议我如何做到这一点。

问候

【问题讨论】:

    标签: c linux tcp


    【解决方案1】:

    听起来像是netcat 的工作。您可以打开设备文件并将其直接绑定到 TCP 端口:cat /dev/whatever | nc -l 2345 从设备读取并将结果写入套接字,以防客户端连接到端口 2345。

    如果您需要安全性,请考虑使用 SSH 隧道。

    【讨论】:

      【解决方案2】:

      最佳解决方案 - socat。 它可以从文件中读取并发送到任何套接字(tcp、udp、unix、ipv4、ipv6)、重定向程序输出、stdout。也可以进行反向操作。

      本地示例:读取文件“test”,并将其内容发送到 localhost:9999

      socat OPEN:test TCP:localhost:9999
      

      如果你想监控文件内容并使其只读

      socat OPEN:test,rdonly,ignoreeof TCP:localhost:9999
      

      在 socat 中你不需要 bash,在 cat|nc 中需要某种形式的 shell。

      【讨论】:

        【解决方案3】:

        我推荐使用 C 的套接字。

        【讨论】:

          【解决方案4】:

          我建议使用 SSH 或 Telnet。

          【讨论】:

            【解决方案5】:

            如果需要进行一些处理,我建议使用 Perl、Python 或 Ruby 中的一种来完成。

            否则,如果要使用任何控制台命令,可以使用curlwget

            【讨论】:

              【解决方案6】:

              如果你想用 C 来做,可能是因为你的嵌入式 Linux 没有其他人建议的任何 shell 工具和语言,你需要查看套接字接口。事件的顺序或多或少:

              1. 使用socket()创建一个套接字
              2. 使用 connect() 连接到服务器
              3. 使用 send() 或 write() 发送您的数据,并使用 recv() 或 read() 处理以其他方式返回的任何内容。
              4. 使用close()关闭套接字。

              【讨论】:

                猜你喜欢
                • 2023-03-12
                • 1970-01-01
                • 2014-10-08
                • 2013-09-10
                • 1970-01-01
                • 1970-01-01
                • 2017-07-01
                • 2015-07-07
                • 2014-04-26
                相关资源
                最近更新 更多