私は、私が始めた非同期ソケットも含むコードを与えられました。BeginAcceptソケットの2番目のパラメーターとしてのオブジェクトの状態がnullである理由がわかりません。正直なところ、MSDNからこのパラメーターを使用できませんでした。また、BeginAcceptがコールバックメソッドから再度呼び出されるのはなぜですか?
public void Start()
{
this.mTcpListener.Start();
this.mTcpListener.BeginAcceptSocket(this.AcceptClient, null);
}
protected void AcceptClient(IAsyncResult ar)
{
if (this.mTcpListener != null)
{
System.Net.Sockets.Socket s = this.mTcpListener.EndAcceptSocket(ar);
Client c = new Client(this, s, this.GetFreePlayerID());
..some code for adding the client instance to collection....
this.mTcpListener.BeginAcceptSocket(this.AcceptClient, null);
}
}