.NETのTcpListenerクラスの使い方を教えてください
要求を受け入れて、TCPのリードをして処理をしたいだけです。
ですが、非同期で実行してすぐに次のAccept()を受け入れて待ち状態にしたいです。
async / awaitをあまり理解できていないので躓いています。
次のように書いてみたのですが、これだど要求を待ってから同期的に処理を書いているので意味がありません。
var listener = new TcpListener(IPAddress.Any, Port);
listener.Start();
while (true)
{
Task<TcpClient> client = listener.AcceptTcpClientAsync();
client.Wait();
var stream = client.Result.GetStream();
// streamで色々読み取る。
}
私のやりたいことに対して、正しい書き方をご教授いただけると助かります。
ちなみに以下のように書いてみるとすぐに反応が返ってくるのですが、まだ要求は来ていませんのでclientは使えません。
TcpClient client = await listener.AcceptTcpClientAsync();