1

私はC#でソケットプログラミングをしようとしていますが、複数のクライアントを処理するためにサーバー側にソケットの配列が必要なのか、それともサーバー側の1つのソケットで多くのクライアントを処理するのに十分なのかを理解する必要があります。

また、サーバーからクライアントへのすべてのデータが到達したかどうか、およびサーバーの可用性を構成する必要があり、クライアント要求を破棄します。

各クライアントも処理するために複数のスレッドを作成する必要がありますか? そして、各クライアントを個別に処理する必要があります。

4

5 に答える 5

6

接続ごとに新しいソケットが必要になります。 spender が言うように、1 つのソケットでのみリッスンします。ソケット API は、接続要求が来ると他のソケットを作成します。

のドキュメントを読むaccept

于 2011-03-10T02:20:23.850 に答える
1

1 つのリッスン ソケットで多くのクライアントにサービスを提供できます。

于 2011-03-10T02:17:53.570 に答える
0

受け入れられたクライアントごとに専用の接続ソケットを作成する1つのリスナー(ウェルカムソケット)を作成します。

私はあなたがのようなものが必要だと思います。

private void listen(){

TcpListener listener = new TcpListener(5000);
listener.Start();
while (true)
{
  // Accept a new client
  Socket clientSocket = listener.AcceptSocket();
  //Create a thread for every client.
  ParameterizedThreadStart pThreadStart = new ParameterizedThreadStart(handleClient);
  Thread thread = new Thread(pThreadStart);
  thread.Start(clientSocket);
 }
}
于 2012-12-02T10:52:07.567 に答える
0

1つのソケットを使用して、複数のクライアントに応答できます。クライアントがサーバーと接続すると、アプリケーションはこの接続に参加するためのソケットを作成します。

于 2011-03-10T02:26:47.843 に答える
0

IOCP を使用したスケーラブルなサーバー アプリケーションの記述をご覧ください。これは、堅牢なサーバー アプリケーションの作成方法に関する優れたチュートリアルです。

于 2011-03-10T03:29:16.953 に答える