問題タブ [posix-select]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - select()関数を使用したCでのソケットプログラミング
このスレッドから得た回答に基づいて、私はこれを作成しました:
サーバーが起動すると、サーバーはif(select(...))
ステートメントでブロックされます。
したがって、サーバーを実行してからクライアントを実行すると、クライアントはサーバーに接続します(クライアントが接続するまでに、クライアントの実行に数回かかる場合があります)。その後、if(select...))
ステートメントは真ではなくなり、elseに進みます。
その後、クライアントは接続とプログラムを閉じます。しかし、これが私の問題が発生する場所であり、if(select(...))
ステートメントは常に誤りです。私はこの出力を取得します:
この出力は永久に繰り返されます。どうしてそれが行き詰まらないのif(select(...))
ですか?
linux - select vs poll vs epoll
何千もの UDP 接続 (約 100,000 セッション) をサポートする必要がある新しいサーバーを設計しています。どちらを使用するかについての意見や提案はありますか?
c++ - POSIX select() の使い方
で使用する前に、ファイル記述子をノンブロッキングにする必要がありselect()
ますか?
c++ - *nix & C++ によるノンブロッキング ソケット サーバーの作成
ブロッキング ソケット サーバーを非ブロッキング バージョンに書き換える際に問題が発生しています。実際、私はもうソケットを接続することさえできないようです.私は今日のほとんどをグーグルで検索し、あちこちで見つけたさまざまな解決策を試しましたが、どれも正しく機能していないようです...現在、私のサーバーループ新しいソケットが受け入れられずに、select() 呼び出しをタイムアウトし続けるだけです。クライアントソケットは、開始すると書き込みをブロックし、サーバーを閉じると接続がピアによってリセットされたことを通知するため、何らかのレベルで接続しているようです。
次の仮定は正しいですか?ノンブロッキングサーバーでは、通常、ソケットを開き、フラグをノンブロッキングに設定してバインドし、読み取りファイル記述子の選択の呼び出しを開始して、それが読み込まれるのを待つ必要がありますか? 無限に待っていた古いブロッキング「accept()」呼び出しを削除する必要があります..accept を呼び出そうとすると、-1 になります...
ここに私が今試している関連コードがあります
c - select() で問題が発生しています
何度も試した後、select()
仕事を得ることができませんでした。私はとても迷っています!-1
その結果、私は得ています。私はこのガイドに従っています。
これらは私が使用している機能です:
そして、これがリスナーのファイル記述子を取得する方法です。
}
c - クライアント側の select() の代替
select()
TCP ノンブロッキング ソケット接続のクライアント側に代わるものはありますか?
select()
主に複数の接続用ですが、私のクライアントには単一の接続しかありません。その結果、1 つのソケットで I/O を認識する代替機能がないか自問自答しました。その方がおそらく高速で、すべての処理は必要ありませんfd_set
。
c - C select() 関数は非推奨ですか?
C でのネットワーク プログラミングに関する本を読んでいます。それは 2004 年のものです。コード例では、著者はselect C 関数を使用して、クライアントからの複数の接続を受け入れています。その機能は今日非推奨ですか?
pollやepollなど、多重化された I/O を受け入れるさまざまな方法があることがわかりました。利点は何ですか?