Согласно MSDN Socket Метод .EndSend может генерировать SocketException для сокета, использующего протокол, ориентированный на соединение. Когда ?
Я протестировал несколько сценариев, и ни один из них не вызвал SocketException.
Сценарий 1. Приложение вызывает BeginSend, и во время отправки данных приложение вызывает BeginDisconnect/Disconnect
. Результат: Socket не отправляет FIN, пока не будут отправлены все данные. , и EndSend выполнено успешно.
Сценарий 2: приложение вызывает BeginSend, и пока оно отправляет данные, сокет получает RST от удаленной конечной точки.
Результат: сокет прекращает отправку данных, вызывает обратный вызов и EndSend< /em> успешно сообщает, что все байты отправлены. Не понимаю, почему?
Когда метод Socket.EndSend создает SocketException для протокола, ориентированного на соединение?