3

どうにかしてソケット経由でバイナリを含む画像ファイルを送信できると聞いたことがあります...しかし、画像ファイルをバイナリに変換する方法や、ソケット経由で送信することを考える方法さえわかりません...

誰かが簡単な例を投稿できることを望んでいましたか? または正しい方向に向けてください:)私はGUIだけにQTも使用していますが、QTソケットプログラミングは使用していません。

どうもありがとう :DI 本当に感謝しています


質問 @ djc:

画像のディレクトリ パスを取得し、その画像に対して send コマンドを使用するにはどうすればよいでしょうか。私は基本的にC++を使用しています。しかし、これは私がしばらくの間持っていた質問でもあります。

4

2 に答える 2

2

持っている画像ファイルはすべて、既にバイナリです。それらをソケット経由で送信するだけです。

于 2009-11-29T10:20:02.687 に答える
0

画像ファイルを見つけるパスを知っているか、ユーザーに教えてもらう必要があります。

それができたら、ファイルを論理的に開き、バッファに読み込み、そのバッファをソケットに書き込み、最後にファイルを閉じます (常に開いたものを閉じ、割り当てたものを解放します)。ただし、並べ替える詳細があります-受信側は、後続のデータが画像であり、その大きさをどのように認識しますか(したがって、すべてを送信したときを認識します)。おそらく、あなたのプロトコルは、メッセージを画像として識別するビット パターン (1 バイトまたは 2 バイト) を定義し、おそらく 4 バイトを使用して画像のサイズを指定し、その後に正しいバイト数を指定します。POSIX ベースのstat()システムコール。別の方法として、イメージの一部を含む一連のパケットを送信することもできます (ここでもタイプを指定します。今回は、「イメージ」ではなく「イメージ パケット」タイプ) とパケットの長さ (16 ビットのみの可能性があります)。符号なし整数、最大サイズ 65535 バイト)、および最後のセグメントの「終了イメージ パケット」。これはおそらく送信者にとってより簡単です。データがファイルに直接送信される場合は受信者にとって簡単ですが、受信者がメモリ内の画像を必要とする場合は面倒です。

于 2009-11-29T11:57:09.880 に答える