• ベストアンサー

WinSockを用いたコンソールアプリケーションでタイムアウトさせるには?

このたびC++でWinSockを用い、コンソールアプリケーションを製作しているのですが、たとえばacceptにしろ、recvにしろ、sendにしろ、そこでとまらずに素通りするか、またはタイムアウト時間を設定するようなことはできないのでしょうか… 何か分かることがあればよろしくお願いしますm(_ _)m

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

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

ソケット・プログラミングでは普通はselectを使いますね。 Windowsでも使えたと思いますよ。

genki140
質問者

お礼

selectなんてはじめてみました!!目からうろこです! これならコンソールアプリケーションでも使用できますね。 すばやい回答ありがとうございました。

関連するQ&A

  • cygwinのコンソールをタイムアウトしないようにするには

    cygwinを使っております。 cygwinのコンソールはファイルの編集などで一定時間操作をしていないと、タイムアウトで閉じてしまい、また開きなおさなくてはなりません。ディレクトリの深いところにいたりしたらなかなかめんどうです。cygwinのコンソールがタイムアウトで閉じるまでの時間の設定はどこで行うのでしょうか?

  • Winsockのsendto関数のタイムアウトについて

    はじめまして。。。 Winsockのsendto関数を使用してユニキャストでUDP送信 しているのですが、LAN切断時等送信先がない場合、 3秒くらいsendto関数の応答が帰ってこなくて困っています。 setsockoptの「SO_SNDTIMEO」で送信タイムアウトを 設定してみたのですが、状況は変わりませんでした。 もし、LAN切断時でもすぐに応答が帰ってくる方法が ございましたらご教示頂けないでしょうか? 環境 OS:Windows XP 言語:.NET 2003 C++

  • if文の中ではwinsockのsendが出来ない?

    struct C_Commu { ----WSADATA wsadata; ----SOCKET Sock; ----sockaddr_in Addr; public: ----void Init(); ----void Send(); } というクラスがあったとします。 Init()ではソケットの生成だとかWinsockを使った通信で必要な設定を行っています。(TCPとする) void C_Commu::Send() { ----send( Sock, "hello", 5, 0 ); ----if(何らかの条件) ----{ --------send( Sock, "hello", 5, 0 ); ----} } このような関数の場合に、if文の外のsend()をコメントアウトしたりコメントにしたりして動作を確認してみたところ if文の外のsend()にはサーバーが反応するのですが、if文内のsend()はsend()が行われているのが確認されるのにもかかわらずサーバー側が一切反応しません。 ここでいう、サーバーが反応するとは、select()を用いてブロッキングが解除されてrecv()に処理が回れば反応した、recv()に処理が行かなければ反応していない、としています。 これはどうしてでしょうか?

  • タイムアウトしてしまいます

    お世話になります。 表記の件、WndowsNT4.0上でIIS4.0とPHP3を使用してwebアプリケーション(主にデータの集計をするアプリ)を設置しております。 データ量がかなり増えたせいで、クライアントがタイムアウトしてしまい、空白のページが表示されるようになってしまいました。 はじめはPHP自体のタイムアウト設定が原因なのかと、max_execution_timeの値を増やしたのですが、効果はありません。(タイムアウトするまでの時間(180秒)も変化無し) おそらくIISのほうの設定だと思うのですが、あまり詳しくないため、かなり困っております。 どなたか、お分かりになるかたはいらっしゃいませんでしょうか?

  • C++のWinsockでサーバーを立てて、 Javaで接続してデータを

    C++のWinsockでサーバーを立てて、 Javaで接続してデータをやりとりするプログラムを作っています。 Javaではout.printlnでサーバーに送信ができると調べたのですが、C側でどうやってうけとればいいのでしょうか? recvだと送ってもうけとりませんでした…。

    • ベストアンサー
    • Java
  • セッションタイムアウトの設定時間通りにならない

    C#によるWebアプリケーションを開発しています。 セッションタイムアウトの設定を240分としていますが、 240分前にタイムアウトになってしまいます。 設定時間通りにタイムアウトにならない事象が発生しており、 原因を究明しています。 【状況】 Web.configとIISにて、セッションタイムアウトの時間を 設定しております。 (1)Web.configの設定 Web.config内にて、 <sessionState timeout = "240" /> のタグを設けて、セッションタイムアウトの時間を240分としています。 (2)IISの設定 IISにて、アプリケーションの構成の【オプション】タブにて、 「セッションのタイムアウト」を240分としています。 【環境】 OS:Windows Server 2003 Webサーバ:IIS6.0 DBサーバ:SQL Server 2005、 セッションタイムアウトが指定時間に行われない原因について、 ご教授の程お願い致します。

  • タイムアウト

    SQLServer2008Exを使用してます。 MSSMSでクエリ(SELECT文)を実行するとタイムアウトになってしまします。 データの量はそれなりにあるのですが、実行タイムアウトは0(ゼロ)無限の待ち時間に設定してあるのに何故なんでしょうか?

  • winsock のrecvデータの終わりを知るには

    Winsockの非同期プログラムで サーバーからクライアントへ,100MB前後のデータを送るプログラムを書いています. サーバーでsend()して,クライアントのcase FD_READ のイベント応答としてrecv()を繰り返すプログラムです. サイズが大きいので何度もrecev()して,データを結合していくことになりますが, 送信データの最後を知るエレガントな方法がないかと思っています. すべてが送り終わったら空send()をして,ゼロサイズのデータを送ることができればよいのですが. よろしくお願いします.

  • WinSockのクライアント処理

    WinSockについてお尋ねしたいのですが、 クライアントからのサーバへ1頁分のデータを要求しそれを画面に表示する プログラムを作成していますが、 一ページ分の要求毎に、以下の一連の処理を行っています。 WSAStartup socket connect send recv closesocket WSACleanup この為か、netstrtで確認すると"TIME_WAIT"が多数発生しポートが あふれてしまう事があります。 そこで、私は、 WSAStartupとWSACleanup を、クライアント起動時に行う。 (いろいろ調べると、これは絶対修正すべきという事がわかりました。) もうひとつ、 "TIME_WAIT"への対処として、 socket connect も、クライアント起動時に行う事を考えています。 私の考えは適切なのでしょうか? "TIME_WAIT"への一般的な対処などお教えください。 宜しくお願いいたします。

  • コンソールアプリケーションの終了コードの設定方法

    VB.NETでコンソールアプリケーションを作成したいのですが、このアプリケーションの呼び出し結果を判定し、異常であれば、それなりの処置をしたいと考えています。 VBで作成したコンソールアプリケーションで、終了コードを設定することは可能なのでしょうか。(C言語のexit命令のようなものを想定しています)可能であれば、どのような命令を使用するのでしょうか。

専門家に質問してみよう