Я делал сервер. Я использую TcpListener.AcceptTcpClientAsync() в методе async
, но понятия не имею, как заставить его работать. Мой код прямо сейчас:
private static async void StartServer()
{
Console.WriteLine("S: Server started on port {0}", WebVars.ServerPort);
var listener = new TcpListener(WebVars.LocalIp, WebVars.ServerPort);
listener.Start();
var client = await listener.AcceptTcpClientAsync();
}
Как обработать клиента? Я просто продолжаю кодить, и он автоматически создаст новые потоки того же метода, или мне нужно использовать какой-то волшебный метод, который сделает это за меня?
Изменить: текущий код:
private static Task HandleClientAsync(TcpClient client)
{
var stream = client.GetStream();
// do stuff
}
/// <summary>
/// Method to be used on seperate thread.
/// </summary>
private static async void RunServerAsync()
{
while (true)
{
Console.WriteLine("S: Server started on port {0}", WebVars.ServerPort);
var listener = new TcpListener(WebVars.LocalIp, WebVars.ServerPort);
listener.Start();
var client = await listener.AcceptTcpClientAsync();
await HandleClientAsync(client);
}
}