1

Ethernet を使用して Qt アプリケーションからファイルを送信したいのですが、プッシュ ボタンをクリックすると、ファイルを転送する必要があります。私の質問は次のとおりです: Q: 使用しているデバイスでIP、ネットマスクが固定されているため、必要な構成は何ですか:AM335x :Linux OS :Qt アプリケーション

TCP/IP を初めて使用するので、手順を教えてください。イーサネットから Qt アプリケーションの実行可能ファイルを PC からデバイス (AM335x) にダウンロードでき、正常に動作しています。しかし、Am335x デバイスから他のデバイスまたは PC にファイルを送信したいと考えています。

よろしくプラヴィーン

4

2 に答える 2

4

基本的に、使用したいのは Qt Network モジュールです。あなたはここでそれについて読むことができます:

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 通信に使用できる 2 つの主要なクラスは、QTcpServer と QTcpSocket です。接続をリッスンするようにサーバーを設定すると、実際の通信を行うために QTcpSocket が返されます。あらゆる発信通信に QTcpSocket を使用できます。

TCP を使用したくない場合は、データグラムを使用できます (より単純ですが、最終的には信頼性が低くなります)。ここで、QUdpSocket は、送信と受信の両方に使用するメイン クラスです (受信するには、ソケットをマシンのポートにバインドする必要があります)。

これらのクラスに基づいて単純なファイル転送を行うカスタム プログラムを作成するのはかなり簡単ですが、特にファイルを処理するように設計されたより高いレベルのプロトコルを見ることもできます。

接続の反対側にある FTP サーバーとの単純な対話には、QFtp クラスを使用できます。FTP クライアント アプリケーションの例を次に示します。Qt で FTP サーバーを作成するのはかなり複雑ですが、https ://code.google.com/p/qt-ftp-server/ を参照してください。

もちろん、これはすべて、イーサネット接続が適切に設定されており、コンピューターに有効な IP アドレスがあることを前提としています。イーサネットはリンク層プロトコルであり、より高いレベルの IP および TCP プロトコルの生の基盤を形成することに注意してください。上位レベルのプロトコルの考え方は、インターネット全体のさまざまなリンク層で使用できるということです。リンク層プロトコルと直接対話するプログラムを作成することは非常にまれです (もちろん、OS のネットワーク スタックを作成している場合を除きます)。

ほとんどのネットワークでは、IP アドレス/ネットマスクなどの構成は、デバイスの 1 つで実行されている DHCP サーバーによって処理されます。最も一般的には、すべてを接続しているルーターで実行されます (DHCP が既に実行されている場合は、おそらく心配する必要はありません)。DHCP を使用しない場合、通常、ほとんどのデバイスで静的アドレスとネットマスクを構成できます。それらを選択するのはかなり簡単な手順です。このページには、概念のかなり良い紹介があります。

于 2013-10-02T08:18:26.467 に答える
1

最初に、ファイルを送信するターゲットが到達可能であることを確認する必要があります。pingを使用します。ping呼び出しが成功した場合は、先に進むことができます。それ以外の場合は、LAN に準拠するようにネットワーク設定を確認する必要があります。

次に、ファイルを送信するさまざまな方法があります: FTPHTTP 、 netcat経由、 CIFSの使用など。

于 2013-10-02T07:30:22.570 に答える