diff --git a/DearFTP/Connection/DataConnection.cs b/DearFTP/Connection/DataConnection.cs index 94d9fdb..b7bd6a8 100644 --- a/DearFTP/Connection/DataConnection.cs +++ b/DearFTP/Connection/DataConnection.cs @@ -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,15 +31,19 @@ namespace DearFTP.Connection Listener = new TcpListener(IPAddress.Any, 0); Listener.Start(); - } public void AcceptClient() { - Client = Listener.AcceptTcpClient(); - Stream = Client.GetStream(); + var task = Listener.AcceptTcpClientAsync(); - IsAvailable = true; + if (task.Wait(Timeout)) + { + Client = task.Result; + Stream = Client.GetStream(); + + IsAvailable = true; + } } public async void AcceptClientAsync() {