Add timeout

Waiting client can't hang now
This commit is contained in:
2019-07-18 13:01:55 +02:00
parent 8ce87a3cfc
commit a2f867480a

View File

@@ -8,6 +8,8 @@ namespace DearFTP.Connection
{
class DataConnection
{
public const int Timeout = 10_000;
public TcpListener Listener { get; private set; }
public TcpClient Client { get; private set; }
public NetworkStream Stream { get; private set; }
@@ -29,16 +31,20 @@ namespace DearFTP.Connection
Listener = new TcpListener(IPAddress.Any, 0);
Listener.Start();
}
public void AcceptClient()
{
Client = Listener.AcceptTcpClient();
var task = Listener.AcceptTcpClientAsync();
if (task.Wait(Timeout))
{
Client = task.Result;
Stream = Client.GetStream();
IsAvailable = true;
}
}
public async void AcceptClientAsync()
{
Client = await Listener.AcceptTcpClientAsync();