これが私のリスニング機能と接続機能
Socket Listen
public void Listen(){
IPEndPoint ep = new IPEndPoint(IPAddress.Any, PortNumber);
Listen.Bind(ep);
Listen.Listen(10);
Listen.BeginAccept(new AsyncCallback(NewConnection), null);}
public void NewConnection(IAsyncResult asyn)
{
Socket Accepted = Listen.EndAccept(asyn);
Listen.BeginAccept(new AsyncCallback(NewConnection), null);
SomeFunction(Accepted);
}
コードは正常に動作し、問題はありません。コードをトレースして、さまざまなクライアントでの作業方法を確認し、フローを理解しました。ただし、1 つのソケットが異なるクライアントにサービスを提供する方法がわかりません。ソケットを介してクライアント間で時分割多重化しますか?
私のコードでは、確立された接続にのみ使用でき、それ以上は使用できないことをMSDNで読みましたAccepted
-その部分はわかりません。クライアントがサーバーソケットに接続しようとすると、実際には何が起こるでしょうか? EndAccept
接続を確立し、同じソケットでリッスンし続けて、より多くのリクエストを同時に受け入れるために、異なるポートを持つまったく異なるソケットを返しますか?