Исключение клиента сокета UWP при попытке подключения: ThrowForNonSuccess (Задача) - PullRequest
0 голосов
/ 27 августа 2018

Я хотел бы создать клиентский сокет UWP. Я использую StreamSocket, но получаю сообщение об ошибке при попытке подключить его. Другими словами, когда код достигает await ConnectSocket(IP, PORT), выдается следующее исключение: Я не понимаю следующее исключение:

Задача была отменена. в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.GetResult () at BluetoothLEExplorer.Models.SocketWriter.d__7.MoveNext ()

System.Collections.ListDictionaryInternal

Вот мой код класса сокетов:

public class SocketWriter
{
    private StreamSocket socket = null;
    public StreamSocket Socket
    {
        get
        {
            return this.socket;
        }
    }

    private String errorMessage;

    public async Task<Boolean> ConnectSocket(string host, string port)
    {
        try
        {
            socket = new StreamSocket();
            socket.Control.KeepAlive = true;
            HostName hostName = new HostName(host);
            await socket.ConnectAsync(hostName, port);
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

    public async Task<Boolean> Send(string message)
    {
        try
        {
            Stream streamOut = socket.OutputStream.AsStreamForWrite();
            StreamWriter writer = new StreamWriter(streamOut);
            await writer.WriteLineAsync(message);
            await writer.FlushAsync();
            return true;
        }
        catch (Exception ex)
        {
            StopSocket();
            return false;
        }
    }

    public Boolean StopSocket()
    {
        try
        {
            socket.Dispose();
            socket = null;
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}

Почему у меня есть это исключение и как его можно исправить?

...