したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

Socketサーバの複数ポート機動

1いつき:2010/07/26(月) 21:23:52
いつも見させていただいています。
socketサーバを複数のポートで起動できるサンプルを探しています。
非同期サーバのクラスを作成し、インスタンス化し、ポートを順次割り当て
起動をしてみましたが、応答動作がまちまちで十分な効果を得ることができませんでした。

通常はどのような方法で、サーバを複数起動させるのでしょうか。
サンプル・方法があれば、ご指導願います。

2igoten:2010/07/26(月) 21:44:56
複数のサーバーを起動することは極めて稀です。
通常は私が書いたサンプルのようにサーバーは一つで、
複数のクライアントが接続要求をしてくる方式になります。
サーバーは接続要求が来たクラインンと毎に、別々の接続を
確立して通信をします。
ただし複数のサーバーを起動できないわけではありません、その必要が
無いだけで、私が書いたサンプルのPortをサンプルでは1001となっていますが、
このプログラムを複数起動してPortを1002や1003にすれば良いだけで
あると思いますが。
>>http://www.geocities.jp/hatanero/socket2.html

3いつき:2010/07/27(火) 07:16:22
ありがとうございます。いろいろな用途で使えるよう、考えていました。

サンプルを単に複数ポートでの起動を考えれば、下記の様でいいですか?
今開発環境が無いのでテストできませんが、根本的な間違いがあるようにも
思えますが、よろしくお願いします。

できれば、配列等で任意の数のポートを起動できればと思います。
よろしくお願いします。


TcpListener Listener1 = null;
TcpListener Listener2 = null;
Thread threadServer1 = null;
Thread threadServer2 = null;

private bool ServerStart()
{
//TcpListenerを使用してサーバーの接続の確立
try
{
//ログの書き込み

WriteLog("サーバを開始しました。");
//スレッドの作成と開始
threadServer1 = new Thread(new ThreadStart(ServerListen));
threadServer1.Start();
threadServer2 = new Thread(new ThreadStart(ServerListen));
threadServer2.Start();
return (true);
}

省略
private void ServerListen()
{
//TcpListenerを作成
Listener1 = new TcpListener(IPAddress.Any, 10000);
Listener1.Start();
Listener2 = new TcpListener(IPAddress.Any, 11000);
Listener2.Start();

// クライアントの接続を受けるための永久ループ
try
{
      省略


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板