掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数のコネクションを操作するには? (ID:56404)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まずは、ソケット通信モデルの基礎を理解されると良いと思います。 ソケット通信は Unix 系の BSD に端を発する、大変に歴史のあるモデルで、現在でもそれと互換性があるように作られていますので、C と Unix でやろうが MFC でやろうが C# でやろうが、基本はほとんど変わりません。 で、サンプルの中には CServerSock と CSubSock という2つのクラスがありますが、実際に通信を行うのは CSubSock の方です。 ソースを見るとわかると思いますが、CServerSock がやっているのは Create、Listen、Accept です。対して、CSubScok は Send と Receive をやっていますね。 CServerSock の役割は、「相手からの接続を待機して、相手が接続してきたら、その相手と1対1通信するための CSubSock を準備すること」だけです。 CServerSock 自体は、データの送受信を行いません。 このサンプルは、1対1通信しか意図していない(CSubSock を1個しか持っていない)ので、そのままでは1対多通信に用いることはできません。 1対多通信を行うには、CSubSock に相当するものを多数持ち、そのひとつひとつに1対1通信を行わせなければなりません。 CSubSock を準備するのは CServerSock の Accept なので、一般には、「Accept 専用スレッド」を作り、CServerSock はその中でひたすら Accept に専念するという方法になるのではないでしょうか。 #ただ、このサンプルは CServerSock 自体をいくつも持つことにより、1対多通信を行うというスタイルのようですが。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.