Add timeout
Waiting client can't hang now
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user