从以太网上的Qt应用程序发送文件

时间:2013-10-02 07:20:44

标签: qt tcp ethernet

我想使用以太网从Qt应用程序发送文件。当我点击按钮时,必须传输文件。 所以我的问题是: 问:所需的配置是什么,因为IP,Net Mask已在我正在使用的设备中修复:AM335x :Linux操作系统 :Qt申请

我是TCP / IP新手告诉我如何继续; 从以太网我能够将Qt应用程序可执行文件从PC下载到我的设备(AM335x),它运行良好。 但我想将文件从Am335x设备发送到其他设备或PC。

此致 普利文

2 个答案:

答案 0 :(得分:4)

基本上你想要使用的是Qt网络模块。你可以在这里阅读:

http://qt-project.org/doc/qt-5.0/qtnetwork/qtnetwork-programming.htm L

在此处找到课程列表:

http://qt-project.org/doc/qt-5.0/qtnetwork/qtnetwork-module.html

非常简单,可用于TCP通信的两个主要类是QTcpServer和QTcpSocket。您可以将服务器设置为侦听连接,它将返回QTcpSocket以进行实际通信。您可以使用QTcpSocket进行任何传出通信。

如果您不想使用TCP,则可以使用数据报(更简单,但最终不太可靠)。这里QUdpSocket是用于发送和接收的主要类(您需要将套接字绑定到计算机上的端口以进行接收)。

编写一个自定义程序来基于这些类进行简单的文件传输是相当容易的,但是你也可以查看专门处理文件的更高级协议。

对于与连接另一端的FTP服务器的简单交互,您可以使用QFtp类。 FTP客户端应用程序的示例是here。在Qt中编写FTP服务器会相当复杂,但您可以在这里查看:https://code.google.com/p/qt-ftp-server/

所有这一切当然都假定以太网连接已正确设置,并且您的计算机具有有效的IP地址。请记住,以太网是一种链路层协议,它构成了更高级别IP和TCP协议的原始基础。更高级别协议的想法是它们可以在整个互联网上的各种链路层上使用。编写一个直接与链路层协议交互的程序是非常不寻常的(除非您正在为操作系统编写网络堆栈)。

在大多数网络中,IP地址/网络掩码等的配置由其中一台设备上运行的DHCP服务器处理,最常见的是连接外部的路由器(如果你已经运行了DHCP,那么你可能不必担心)。如果没有DHCP,通常可以在大多数设备上配置静态地址和网络掩码。选择它们是一个相当简单的过程。 This page对这些概念有相当好的介绍。

答案 1 :(得分:1)

首先,您必须确保要将文件发送到的目标可以访问。使用 ping 。如果 ping 呼叫成功,那么您可以更进一步。否则,您应该检查network settings以符合您的LAN。

您可以通过各种方式发送文件:FTPHTTPnetcatCIFS等。