Я переписываю клиентскую часть существующего приложения C ++ для C #.Приложение сервера останется написанным на C ++.Связь работает должным образом до конца, где Сервер закрывает сокет.Архитектура выглядит следующим образом и использует асинхронную отправку и получение: Клиент: отправка данных на серверный сервер: получение данных с клиентского сервера: отправка данных (файлов) на клиентский сервер: закрытие сокета Клиент: получение данных с сервера
Встарая версия программы на C ++, данные уже находятся на сокете, и хотя одна сторона соединения с сокетом закрывается, данные по-прежнему доступны.Из моего обязательства в C #, когда половина соединения закрывается, отправляется пакет сброса соединения, и C # получает исключение, которое не позволяет мне получить остальные данные.(Я получаю только 1 файл вместо 2, поскольку сокет закрывается сервером после отправки информации).
Я могу опубликовать свой код, но на самом деле это просто Async Send and Receive.Если я шагну по коду и сделаю паузу прямо перед закрытием сокета на сервере, все будет работать как положено.Фактическая ошибка исключения: «Существующее соединение было принудительно закрыто удаленным хостом».