2016-04-25 12 views
-2

私はソケットプログラミングの新機能です。私はあるプロセスから別のプロセスへの単純なメッセージ転送を行ったが、今はクライアントがサーバに要求を送るときにイメージ+データを送信したい。 私は、データまたは画像のみを送信できますが、両方を1回のリクエストで送信することはできません。どうすればこれを達成できますか?クライアントがTCP/IPを使用してC#でサーバにリクエストを送信したときにデータと画像を送信したい

+2

TCPはバイトストリームであることに注意してください。それがあなたに与えるものです。 *メッセージ*を扱う場合、それをバイトストリームの上に実装するか、メッセージングを提供するより高いレベルの抽象化に移行するかはあなた次第です。 –

+3

画像はデータです。カスタムオブジェクトの画像とデータの両方をボックスに入れて、もう一方の端でunboxするのはなぜですか? –

+0

ありがとう@AdamCalvetBohl –

答えて

0

コメントに記載されているように、TCP/IPのコンテキストでは、バイトの配列をストリーミングすることに基づいてすべての受信プロセスが送信されます。私は強く起点画像にのみパス文字列を保存することをお勧めします文字列とことがありますデータが含まれているいくつかのカスタムタイプを作成

  1. : 次のアルゴリズムを(それはコピー&ペーストのソリューションではありません)を使用することができます。

    class StreamData {string dataPath {get;set;} string imagePath {get;set;} }

    はバイト配列にデータ(画像、音楽)を変換する別の抽象レベルのクラスを追加し、変換するデータのパスを取得します。 class StreamConverter{ //some awesome method(string path)}

このデータをクライアントに送信するだけです。また、クライアントがこのデータを逆シリアル化/エンコードする方法についても忘れないでください。

+0

両方のプロセスが同じマシン上にあっても両方のプロセスが異なるマシン上で実行されている場合は、画像パスが与えられます。イメージファイルを転送したい –

関連する問題