DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33704 / inTopicNo.1)  「UDP」65535byteを超える画像データの送信
  
□投稿者/ RIZE 一般人(1回)-(2017/10/17(Tue) 15:32:16)
  • アイコン環境/言語:[OS : Windows 7 / 言語 : C# / .NET Framework : 3.5] 
    分類:[.NET] 

    【解決したい問題】

    2台のPC間で、片方のPCで描かれた画像データを別のPCでリアルタイム表示するアプリケーションを検討しています。
    アプリのイメージは、ペイントツールのようなアプリで描かれた画像データを、別のPCでリアルタイム表示するアプリとなります。
    当初、画像データ(bitmap)をバイト配列化し、UDPで送信し、受け取り側でbmp化しなおして表示しようかと思っておりましたが、上限の65535を超える画像も想定されるため、どうしようか悩んでおります。

    以下前提条件です。
    ・5MBを超える画像データも存在する
    ・とにかくリアルタイムで表示させたい(高速性を重視)
    ・UDPの特性の順番が変わったり、パケットロスするのは問題ない(あくまでモニタ表示のため)

    インターネットプロトコルをipv6にすれば、上記上限はなくなるため、
    問題ないかと思っていましたが、System.Net.Sockets.UdpClientで作成したサンプルで試してみると、やはり上限が65535のようで、うまくいきませんでした。(ipv6のサンプルは本サイトを参考にし作成)

    また、データを分割して送れば出来そうかなとは思いましたが、その場合、受け取り側で受け取り順番の考慮や、パケットロスを考慮する必要があるかと思いますが、これを極力簡単にしたいと思っており、ほかの方法がないか検討しています。

    こういった場合、どういった方法が考えられますでしょうか?
引用返信 削除キー/
■33712 / inTopicNo.2)  Re[1]: 「UDP」65535byteを超える画像データの送信
□投稿者/ shu 大御所(480回)-(2017/10/19(Thu) 11:55:07)
  • アイコンNo33704に返信(RIZEさんの記事)

    送り側
    ・画像を送信可能サイズに分割
    ・ID+データ種別(1)+総数を送信
    ・ID+データ種別(2)+分割番号+分割データ郡をそれぞれ送信

    受け側
    ・同一IDのデータがそろったら画像を復元して表示
    ・違うIDが届いたらそれまでのデータを破棄

    基本的にはこんな感じだと思います。
引用返信 削除キー/
■33715 / inTopicNo.3)  Re[2]: 「UDP」65535byteを超える画像データの送信
□投稿者/ RIZE 一般人(2回)-(2017/10/19(Thu) 14:56:57)
  • アイコンNo33712に返信(shuさんの記事)
    返信ありがとうございます。
    やはりそういうプロトコルにするしかなさそうですね。

    ipv6であれば、65535バイトの制限がないとの認識でしたが、あっておりますでしょうか?

引用返信 削除キー/
■33718 / inTopicNo.4)  Re[3]: 「UDP」65535byteを超える画像データの送信
□投稿者/ shu 大御所(481回)-(2017/10/20(Fri) 07:02:49)
  • アイコンNo33715に返信(RIZEさんの記事)
    > ■No33712に返信(shuさんの記事)
    > 返信ありがとうございます。
    > やはりそういうプロトコルにするしかなさそうですね。
    >
    > ipv6であれば、65535バイトの制限がないとの認識でしたが、あっておりますでしょうか?
    >
    UDPの仕様としては可能みたいですが、
    https://ja.wikipedia.org/wiki/User_Datagram_Protocol

    UdpClientで同一制限がかかるのは何か指定が足りないか、不可能なのだと思います。さらに低レベルのSocketを使うと出来るかもしれません。
引用返信 削除キー/
■33725 / inTopicNo.5)  Re[4]: 「UDP」65535byteを超える画像データの送信
□投稿者/ RIZE 一般人(4回)-(2017/10/25(Wed) 23:56:14)
  • アイコンNo33718に返信(shuさんの記事)
    > ■No33715に返信(RIZEさんの記事)
    >>■No33712に返信(shuさんの記事)
    > UdpClientで同一制限がかかるのは何か指定が足りないか、不可能なのだと思います。さらに低レベルのSocketを使うと出来るかもしれません。
    返信ありがとうございます。
    今回は分割送信のプロトコルを作ることにします。
    ありがとうございました。
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -