Можно ли получить данные, которые были отправлены через асинхронное соединение? - PullRequest
2 голосов
/ 30 апреля 2019

У меня есть клиент, который получает данные через tcp и отправляет их на другой сервер. Я пытаюсь убедиться, что не теряю никаких сообщений, если произойдет какое-либо отключение. В SendCallback я проверяю, был ли сервер еще подключен. Если сервер отключился, я хочу сохранить сообщение в списке, чтобы повторить попытку позже.

Есть ли способ получить массив строк / байтов, который не удалось отправить?

        private static void SendCallback(IAsyncResult ar)
        {            
            try
            {
                Socket receiver = (Socket)ar.AsyncState;
                int bytesSent = receiver.EndSend(ar);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }

1 Ответ

0 голосов
/ 30 апреля 2019

Это перезвонить, но перед тем, как перезвонить, вы пытаетесь заполнить буфер.это StateObject, содержащий размер буфера, обработчик сокета и так далее.Так что ваш ответ определенно ДА.Вы должны прочитать больше об асинхронном программировании сокетов на веб-сайте MSDN.

...