如何通过控制台通过互联网发送数据

时间:2010-11-01 03:00:52

标签: c linux tcp

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

此致

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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。

答案 2 :(得分:1)

我推荐使用C的套接字。

答案 3 :(得分:0)

我建议使用SSH或Telnet。

答案 4 :(得分:0)

如果有一些处理要做,我建议使用Perl,Python或Ruby中的一个来做。

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

答案 5 :(得分:0)

如果您想在C中执行此操作,可能是因为您的嵌入式Linux没有其他人建议的任何shell工具和语言,您需要查看套接字接口。事件的顺序或多或少:

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