• 締切済み

C#でのデータ転送時間

C#で、System.Net.Sockets.TcpListenerとSystem.Net.Sockets.TcpClientを使用し、転送時間の計測をしているのですが、データ量を変更(byte数:60000、90000、120000、150000)しても転送時間が殆ど変わりません。 こういうものなのでしょうか? どなたかご存知でしたら、教えてください。

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

どのように計測したのでしょうか? 純粋に転送時間だけを計測しているでしょうか?

goopoo
質問者

お礼

有難うございます。 解決しました。 ソケット接続後、すぐにデータ送信を行ったのが原因でした。 データ量が少ない場合は、送信できるのですが、多くなった場合正常に動作しないようです。

  • davidname
  • ベストアンサー率40% (4/10)
回答No.1

C#はあまり詳しくないんですが最適化のために.NETが自前でプールしているんじゃないでしょうか。

関連するQ&A

  • クライアント上のC++でサーバーとソケット送信

    クライアント(Windows7)上でC++を使って、サーバー側(Windows)に対してデータを送りたいです (ソケット通信?)。 サーバ受信側はC#を使ったプログラムで以下のような感じで考えてます。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; namespace ConsoleApplication1 {   class Program   {     static void Main(string[] args)     {       int port = 2222;       System.Net.IPAddress ip = IPAddress.Parse("127.0.0.1");       System.Net.Sockets.TcpListener server = new TcpListener(ip, port);       Console.WriteLine("Enter押してください");       ConsoleKeyInfo info = Console.ReadKey();       if (info.Key == ConsoleKey.Enter)       {         Console.WriteLine("サーバー待機中");         server.Start();         TcpClient client = server.AcceptTcpClient();         NetworkStream ns = client.GetStream();         StreamWriter sw = new StreamWriter(ns);         Console.WriteLine(sw);       }     }   } } C++のことがよくわかってないので、送信側でC++を使ってどのように 送信すればいいのかわかりません。 送信するデータはINT型で、1秒間に1回、繰り返し送ります。 よろしくお願いします。

  • Webのデータ転送量の計測ツールを教えて下さい

    Webのデータ転送量の計測ツールを探しています。 レンタルサーバー(サイトサーブ2[Eストアー])を使用して、サイトを作成しているのですが先月から急にデータ転送量が増え、超過料金が発生するようになってしまいました。 原因を調べるべく、データ転送量は「1ページの容量×アクセス数」で求められるとあったので、計算したのですがEストアーが教えてくれた数とかなり違う状況です。 [Eストアー]204GB [計算上]120GB 日毎のデータ転送量を調べられるともう少し詳しく調査できると思うので、データ転送量がわかるツールがあればご教授いただけると助かります。 お手数ですが何卒よろしくお願いいたします。

  • C#で通信処理。応答がない場合、すぐエラーにしたい

    VS2005、C#で通信処理をしています。 やりたいことは「接続後、データを渡してその返答データをもらう」です。 //サーバーに接続 Int32 port = 9999; TcpClient client = new TcpClient(server, port); //サーバーにメッセージを送信 Byte[] dataA = System.Text.Encoding.UTF8.GetBytes(message); Byte[] dataB = Byte[128]; NetworkStream stream = client.GetStream(); stream.Write(dataA, 0, dataA.Length); len = stream.Read(dataB, 0, dataB.Length) client.Close(); ネットのサンプルを参考にさせてもらい、上のようなソースを作ることができたのですが、2つの疑問があります。 (1)接続時に指定したIPアドレスが存在しない場合、エラーが返ってくるのが遅いです。そういうものなのでしょうか。たとえば、即時返答などはできないのでしょうか。 (2)接続してデータを送っても、向こうからデータが返ってこなければずっと待機したままです。たとえばミリセカンドで切ることはできないのでしょうか。 もしくは指定のミリセカンド経過後強制的にエラー処理に飛ばす等はできないのでしょうか。 通信処理をやるのが初めてで定石がよくわからず、あれこれ試している状態です。 処理についてご存じの方、ご指南いただけたらと思います。参考になるサイトや検索キーワードだけでも教えていただけたら嬉しいです。 よろしくお願いします。

  • IPアドレス毎にデータ転送量を計測する方法

    タイトル通りの質問なのですが、 IPアドレス毎にデータ転送量を計測したいんです。 snmp + mrtgだとNIC毎でしか計測できないようで・・・。 何か方法はありますでしょうか? よろしくお願い致します。

  • C#で、ファイルのデータを取得し、配列に格納

    C#を始めたばかりで分からないことも多いため、質問させていただきます。 C#で、テキストファイルにある2進数の数値 例: 00111100 11111100 00010100 のような8桁のデータをC#でテキストファイルから2進数のまま読み取り、 配列に格納したいです。 上の例で考えると、 byte[0]に 00111100 byte[1]に 11111100 byte[2]に 00010100  のデータが入力されているような感じです。 ArrayListを使用する方法や、 バイナリファイルで読み込む方法などもあると思うのですが、 データを1行ごとに配列に入力し、 それを見た目どおり2進数として格納する方法が分かりません。 やはり、文字コードなどを参考に、 1文字ずつ格納し、引き算していくしか方法はないのでしょうか? 文章が分かりにくくて申し訳ないのですが、回答いただけるとありがたいです! よろしくお願いいたします。

  • クラス内に自作のイベントを定義したい VB2005

    VB2005を使っています。 クラス内に自作のイベントを定義したいのですがどうすればよいのでしょうか? 非同期のソケットから帰ってきた場合に発生させるイベントです。 System.Net.Sockets.TcpClient System.Net.Sockets.NetworkStream 以下のようにループでなくイベントで処理させたいです。 Do If .DataAvailable Then             ... End If My.Application.DoEvents() Loop

  • データ転送量を調べるソフトってありますか?

    現在、光導入を検討しています。 フレッツはまだまだ未定のため、 地元の光回線(MEGAEGG)を検討対象に入れているのですが ここはひと月あたり一定の転送量を超えると 速度が64kまで制限されてしまうそうです。 制限までの量は50GBということなのですが 現状での自分の環境におけるデータ転送量は どのくらいになるのか調べてみたいと思いました。 (50GBがどのくらいなのか全くピンとこないもので…) そこでお本題なのですが、 ネットにおける一定期間のデータ転送量を調べるソフトというのは ありますでしょうか? MacOSX10.4.8で対応しているものがあれば ぜひ紹介していただければと思います。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • データの転送方法

    CAMで作成したGコードデータをNC装置に転送する事が出来ないのですが、どうしたらよいのでしょうか? PCとNCはRS232Cで繋いでいます。 NCはマザトロール M プラスを使用しています。 転送パラメータ(G54)というのはDNCという物に書き換えましたが データを転送ソフトからいくら送信してもできません。 転送パラメータ以外にNC装置の変更が必要な部分があるのでしょうか? 具体的にご教授頂けますと非常に助かります。

    • 締切済み
    • CAM
  • 時間データの置き換え

    勤務時間のデータを抽出するシステムから出てくる時間の形式がばらばらです。又、そのデータを加工したいのでエクセルへ変換するのですが自動では変換できません。 出てくるデータ    欲しいデータ形式 :15:45         0:15:45 形式で一気に変更することもできない為1個1個データを手で修正かけざるを得ないのですがデータ数が膨大な為関数を入れて変換できやしないのか??と考えています。ただ私にはそれほどの知識がなくどなたかお知恵をお貸しいただけないでしょうか・・どうぞよろしくお願いいたします

  • 大きな画像ByteデータをUDP転送したい

    VB.net2005でサーバーアプリとクライアントアプリを作って 全クライアントに一定間隔で画像を送信しようと思ってます。 クライアント側は全部取れなくてもいいので、UDPを使ってみたのですが、 送る画像をbmp.GetPixel()で取得してByte型の配列に詰めて 縦160*横120*3(RGB)分で転送する分にはOKだったのですが、 縦320*横240*3(RGB)分はNGでした。 (65535バイト以上送信するとエラーになる…UDPのデフォルトの バッファ最大値?) それでMemoryStreamとDeflateStreamと使って圧縮してみたものの 230401Byte → 222169Byte程度にしかなりませんでした。 jpgのByteデータにして送れば小さくなるのかと思ったのですが 良いやり方がわかりませんでした。 他の方法でもいいのですが、Byteデータを小さくする手段って ありますでしょうか?

専門家に質問してみよう