• ベストアンサー

Ftpでの帯域制限の設定方法について

.Net Framework2.0 C#でFtpクライアントアプリケーションを 開発しています。 現在の実装は、FtpWebRequest/FtpWebResponse クラスを使用しています。 しかし、Ftpサーバと通信を行うネットワークの帯域が狭いので、大量のデータを一度に送信することができません。 そこでアプリケーション側で帯域制限の設定を行いたいと考えているのですが、何かいい方法はないでしょうか? FtpWebRequestまたはResponseクラスに該当のプロパティ、メソッドがないものか一通り見てみたのですが、該当するものはなさそうです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

情報見つかりませんね。 外部のライブラリで良ければ TKFP.DLL てのがありますね。 http://uwa.potetihouse.com/library/tkfpdll.html

Marco9
質問者

お礼

なるほど、 確かにこちらのDLLであれば、帯域制限の設定可能との 記述がありますね。 情報ありがとうございます。 試してみたいと思います。

関連するQ&A

  • JAVAにFTP転送をサポートしているクラスはありますか

    この度、JAVAでFTP送信を行うプログラムを開発することになりました。私自身がプログラムを開発する訳ではありません。又、私自身はJAVAについてはよく知りません。というのが前提です。 指定されたファイルを指定されたIPアドレスへFTP送信するプログラムをJAVAで作る場合、FTP送信をサポートしているクラスはJAVAにあるのでしょうか。イメージとしては、そのクラスを呼び出して、FTPコマンドのPUTコマンドに相当するようなメソッドを呼び出せれば良いと考えています。又、転送エラーが発生した場合のエラーのハンドリングは必須です。ちなみに、C言語では、私が調査した結果では、そのようなクラス(API)はないので、ソケットライブラリでFTPプロトコルに従って一からの作り込みとなります。本件の質問の意図はJAVAでFTP転送のプログラムを開発する時の作業量を見積もっておきたい為です。(FTP転送のクラスがあれば、簡単に開発できるが、なければそれなりの作業量が発生すると考えています)

    • ベストアンサー
    • Java
  • フレームワークによくあるインターフェースについて

    たとえばSpringだとInitializingBeanインターフェースを 実装してafterPropertiesSetメソッドに処理を書くことによって Beanを初期化したときにその処理が実行されるようですが、 これはどのような仕組みでそのインターフェースを実装しているか どうかを判断しているのでしょうか? getInterfacesメソッドを使うとそのクラスが実装している インターフェースを調べることができるようですが、 これは親クラスのインターフェースまでは調べられないようですし、 フレームワークはどのようにしてそのクラスが実装している インターフェイスを判定しているのか不思議です。

    • ベストアンサー
    • Java
  • linuxでのftpクライアントプログラムをつくるには

    Windows(VC++ MFCを使用して)などで ftpクライアントのプログラムを作成することが出来るみたいですが linux(TURBO LINUX 4.0)で同様なことはできないのでしょうか? 具体的には 以下のようなことがしたいためです。 (1) ftpサーバーにlinuxマシンにてクライアントでログイン (2) サーバー上のftpホームディレクトリにあるファイルができるまで周期的に監視 (3) 該当するファイルができたらファイルをクライアント側に転送 (1)~(3)を一回のftp接続状態のまま自動的(プログラム)で行ないたいのです。 VC++ MFCでは,FTPを行なうクラスがいくつかあるみたいですが? どなたかわかりましたら御回答ください。

  • FtpWebRequestでエラーになってしまう

    お世話になっております。 当方C#初心者でございます。 現在、FTPSを使用しファイルダウンロードを行うクライアントアプリの作成を FtpWebRequest、FtpWebResponseを用いて行っております。 #以下を参考にし、作成させて頂いております。 http://dobon.net/vb/dotnet/internet/ftpwebrequest.html#section1 http://blogs.gine.jp/taka/archives/1377 ですが、FtpWebRequest.GetResponse()のところでエラーが発生し原因を突き止められておりません。 また、ポートを21、990とした際にエラー内容も変わっており、余計原因究明が困難となっております。。 解決にご助力願えますでしょうか。 以下ソースと、トレース結果となります。 ----------------------------------------- ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate(Object certsender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }); FtpWebRequest ftpReq = (FtpWebRequest)WebRequest.Create("ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg"); ftpReq.Credentials = new NetworkCredential("test_user", "test_pass"); ftpReq.Method = WebRequestMethods.Ftp.GetFileSize; ftpReq.KeepAlive = false; ftpReq.EnableSsl = true; FtpWebResponse ftpRes = (FtpWebResponse)ftpReq.GetResponse(); <- ここでExceptionが発生してしまう Console.WriteLine(ftpRes.ContentLength); textBox1.Text += ftpRes.ContentLength; ----------------------------------------- Port:21 System.Net Verbose: 0 : [4936] Exiting FtpWebRequest#33736294::GetResponse() System.Net Verbose: 0 : [5252] WebRequest::Create(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg) System.Net Information: 0 : [5252] FtpWebRequest#33736294::.ctor(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg) System.Net Verbose: 0 : [5252] Exiting WebRequest::Create() -> FtpWebRequest#33736294 System.Net Verbose: 0 : [5252] FtpWebRequest#33736294::GetResponse() System.Net Information: 0 : [5252] FtpWebRequest#33736294::GetResponse(メソッド = SIZE。) System.Net Information: 0 : [5252] Associating FtpWebRequest#33736294 with FtpControlStream#35191196 System.Net Information: 0 : [5252] FtpWebRequest#33736294::(FTP connection#35191196 を解放しています。) System.Net Information: 0 : [5252] Associating FtpWebRequest#33736294 with FtpControlStream#48285313 System.Net Information: 0 : [5252] FtpWebRequest#33736294::(FTP connection#48285313 を解放しています。) System.Net Error: 0 : [5252] Exception in the FtpWebRequest#33736294::GetResponse - 基礎になる接続が閉じられました: 受信時に予期しないエラーが発生しました System.Net Error: 0 : [5252] 場所 System.Net.FtpWebRequest.SyncRequestCallback(Object obj) 場所 System.Net.FtpWebRequest.RequestCallback(Object obj) 場所 System.Net.CommandStream.InvokeRequestCallback(Object obj) 場所 System.Net.CommandStream.Abort(Exception e) 場所 System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage) 場所 System.Net.FtpWebRequest.GetResponse() System.Net Verbose: 0 : [5252] Exiting FtpWebRequest#33736294::GetResponse() ------------------------------------------ Port:990 System.Net Verbose: 0 : [3804] Exiting FtpWebRequest#33736294::GetResponse() System.Net Verbose: 0 : [2416] WebRequest::Create(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg) System.Net Information: 0 : [2416] FtpWebRequest#33736294::.ctor(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg) System.Net Verbose: 0 : [2416] Exiting WebRequest::Create() -> FtpWebRequest#33736294 System.Net Verbose: 0 : [2416] FtpWebRequest#33736294::GetResponse() System.Net Information: 0 : [2416] FtpWebRequest#33736294::GetResponse(メソッド = SIZE。) System.Net Information: 0 : [2416] Associating FtpWebRequest#33736294 with FtpControlStream#35191196 System.Net Information: 0 : [2416] FtpWebRequest#33736294::(FTP connection#35191196 を解放しています。) System.Net Error: 0 : [2416] Exception in the FtpWebRequest#33736294::GetResponse - 基礎になる接続が閉じられました: ご教示、ご指摘のほど、よろしくお願いいたします。

  • VB.NETでフォームロード中のエラー時に終了する方法について

    仕様・環境 WindowsXP Professional VisualStudio 2005 VB.NET(.NET Framework 2.0) アプリケーション起動時、最初のフォームロード中にデータの読込みなどを行っており、読込みエラーが起きた場合などを想定しています。 LoadイベントではCloseメソッドの呼び出しは行ってはいけないため、どのような処理にするのがベストなのかを知りたいです。 ひとつの解決策としてアプリケーションフレームワークを無効にし、Sub Mainからスタートする方式にして、 フォームを開く前にデータの読込み判定などを行えば問題は解決できるのですが、 アプリケーションフレームワークの機能を使っているため、設定を無効にすることが出来ません。 アプリケーションフレームワークを有効にした場合は、スタートアップフォームの選択肢に独自のMainが選択できません。 以下のどちらかが解決できればよいのですが、よろしくお願いします。 ・アプリケーションフレームワークを有効にした状態で最初に呼び出されたフォームにエラーが発生した場合にフォームを閉じる方法はあるのか? ・アプリケーションフレームワークを無効にした状態でアプリケーションフレームワークが提供する機能と同じものを実装する方法はあるのか? 2番目については独自で実装すればいくらでも可能だとは思いますが、 簡単に(例えばフレームワークをONにする程度の労力)実装する方法があるのかということです。 以上ですが、よろしくお願いします。

  • サーブレットでレスポンスが返る仕組み

    ※)回答いただける方は、自信のある方のみお願いします。   正しい内容を理解したいため、推測等での回答はお控えいただければ幸いです。 サーブレットでクライアント(ブラウザ)にレスポンスを返すとき、 PrintWriter out = response.getWriter(); //responseはHttpServletResponse out.println("Hellow World"); とコーディングします。 そこで疑問なのですが、なぜ、outに文字列をセットするとクライアントへの レスポンスが返るかです。 想像するに、getWriterの中で、responseのメンバー変数にもPrintWriterの 参照を持たせているのかなということです。 それであれば、outに文字列をセットしても、responseにセットしていることなるので、 クライアントに文字列が返されるが理解できます。 そこで質問です。 (1)この仮定は正しいでしょうか。 (2)上記の2行を書けばクライアントにレスポンスを返せるというのは、色んな本やWEBに  書いてあるのですが、どうして上記の2行を書けば、クライアントにレスポンスが  返るのかを書いた説明したものを見たことがないです。  クライアントにレスポンスを返すには、responseにセットしないといけないわけですから、  どういう仕組みで、outにセットするだけでクライアントに返るのかを理解しておかないと、  なぜか分からないけどこう書けば動く、というレベルの理解になってしまいます。  この手の仕組みを理解するには何を参考に勉強すればよいのでしょうか。  HttpServletReponseはサーブレットコンテナで実装されているので、サーブレットコンテナ  の実装クラスのソースを読めばいいのでしょうか?  もしそうであれば、サーブレットコンテナの実装クラスは公開されているのでしょうか・・・ よろしくお願いします。

    • ベストアンサー
    • Java
  • ClientBase<TChannel> クラスの Dispose() メソッドについて

    お世話になっております。 http://oshiete1.goo.ne.jp/qa5572673.html に引き続き、 Dispose() メソッドの実装について不明な点があるので、よろしければご教示願います。 環境は、Visual C# 2008 Express Edition です。 .NET 3.5 まず、公開されているWebサービスに対して、 ソリューションエクスプローラより、サービス参照の追加で、Clientクラスを自動生成いたしました。 その自動生成されたクラス(仮に XSoapClient)が、System.ServiceModel.ClientBase<TChannel> クラスを継承しています。 ClientBase クラスは、IDisposable インタフェースを実装しているのですが、XSoapClient にも ClientBase にも、Dispose() メソッドの実装が見当たりません。 (自動生成のため、別の場所に作成されているのかもしれません。) using (XSoapClient client = new XSoapClient()) {  // ここにコード } とした場合に、client の Dispose() の実装がわからないため、 しっかりとコネクションが切れているのかが不明です。 Dispose() メソッド内では、Close() メソッドが呼ばれているのが普通なのでしょうか。 以上、よろしくお願いいたします。

  • インターフェイスの使い方がわかりません(初心者です)

    Javaを始めたばかりの初心者です。 「やさしいJava」を買って一通り学んだのですが、 インターフェイスの使い方がよくわからず、困っています。 インターフェイスを実装することでインターフェイスが持つメソッドがすべて定義されてることが保障される、 というのはわかるんですが、そのことがどうして有用なのでしょう? また、具体的にはスレッドを扱うときにRunnableインターフェイスを実装する理由がわかりません。 Threadクラスのオブジェクトを作成するときに、 Runnableを実装したクラスのオブジェクトの変数を 引数にしないといけないんですよね? このとき、Runnableインターフェイスが 「runメソッドが定義されていなければならない」 とだけいうものだったとしたら、 Runnableを実装してなくてもrunメソッドさえ定義してあれば 実行できそうな気がするんですが・・・

    • ベストアンサー
    • Java
  • 実行時に確定するメソッドを呼び出す方法について

    invoke()メソッドや、Methodクラスを 使用するなど。以前に小耳にはさんだ。記憶があります。 以下の3つの引数から 動的に該当メソッドを呼び出す。 処理を実装コードがすぐだせる方がいると 助かります。 Object foo(Object obj, String methodName, Collection param) (1)該当オブジェクト getClass()などで、該当クラスを動的に  特定。 (2)、(1)が保有しているメソッドのうち、 発行したいメソッドの名前 (3) parmには1要素ごとに2要素のObject[]型を   を格納して、 Object[0]の要素にかんしてはが引数の型についての完全修飾クラス名をあらわすString型。   Object[1]については実際に入っている値。 上記3つの引数をうけとって内部で getClass()とかつかって 必要な情報はすべて実行時に動的に 取得して objの該当オブジェクトを 発行し、foo()メソッド自体の 返却値はそのメソッドの返却値とする という ロジックの実装のサンプルがあると。 とても、うれしいです。 じゃ、void型が返却の時どうすんねん。 とか、staticの時どうすんねん。 とか、その変のアイデア持ってる 人がいるととてもうれしい。 以上

    • ベストアンサー
    • Java
  • ExcelCreatorについて

    教えていただきたい事があり、質問させていただきました。 「ExcelCreator 5.0 for net」を使用してアプリケーションを作成しました。 開発ツール:Visual Studio .NET 2008 開発言語:VB.NET クライアントOS:Windows XP SP2、Windows XP SP3 クライアントFramework:Framework2.0、Framework3.0、Framework3.5 SP1 「Framework2.0」のクライアントでクライアントでアプリケーションを起動した時に 例外エラーが発生しました。 販売元に確認をしたところ解決方法は「Framework3.5 SP1」もしくは「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ」をクライアントにインス トールすることで解決するとの事でした。 クライアントには管理者権限は与えていません。 バッチで管理者権限を与えていないクライアントにサイレントインストールを する事は可能なのでしょうか? ユーザーが気づかないうちにインストールをしたいと思っています。 できるのでしたら方法を教えていただけないでしょうか? よろしくお願いいたします。

専門家に質問してみよう