質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

ソケット

TCP/IPにおいて、IPアドレスとサブアドレスであるポート番号を組み合わせたネットワークアドレスのことを呼びます。また、ソフトウェアアプリケーションにおいて、TCP/IP通信を行う為の仮想的なインターフェースという意味もある。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

Q&A

0回答

1681閲覧

WSAWaitForMultipleEvents使用時のWSA_MAXIMUM_WAIT_EVENTS以上の接続方法

mok

総合スコア6

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

ソケット

TCP/IPにおいて、IPアドレスとサブアドレスであるポート番号を組み合わせたネットワークアドレスのことを呼びます。また、ソフトウェアアプリケーションにおいて、TCP/IP通信を行う為の仮想的なインターフェースという意味もある。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

0グッド

1クリップ

投稿2018/09/05 02:47

前提・実現したいこと

Winsock2を使用して、サーバークライアントを作成します。
tcp/ip streamでデータを送受信します。

サーバーは、コンソールアプリケーションで
サービスに登録して起動させる予定です。

サーバー側の処理としては、
socketを作成し、
bind⇒listenで待機し、
accceptしてきたクライアントごとに
1.接続ソケットにWSACreateEvent()でイベントを作成し、
2.WSAEventSelectでFD_READ、FD_CLOSEのイベントを検知するようにして
3.WSAWaitForMultipleEvents(nEvents, &hEvents, FALSE, 500, FALSE)で待機。

というWSACreateEvent/WSAEventSelect/WSAWaitForMultipleEvents
を使用しようと思っています。

ですがWSAWaitForMultipleEventsでは、
イベントオブジェクトハンドルの最大数はWSA_MAXIMUM_WAIT_EVENTS(=64)で
nEventは64までしか管理できないとありました。

今回、100以上のクライアント接続を要求されています。

一般的には、クライアントごとにThreadを作成して処理するとありましたが、
例えば、クライアントが接続してきた場合、クライアントにつき1つThreadを作成し、
クライアントThread内で、
1,2を接続ソケットに処理し、
3.WSAWaitForMultipleEvents(1,&hEvents, FALSE, TIMEWAIT_TCP, FALSE)
で1つのハンドルについて待機し送受信データを処理する。
このThreadを100以上作成することは可能なのでしょうか?

もし、クライアントが100以上の場合、WSACreateEvent/WSAWaitForMultipleEventsを使用するには、どのように処理するのが適切なのでしょうか?
参考のサイトなどありましたら教えていただけませんでしょうか?

開発環境は、VisualStudio 2017 VC++ です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問