Я писал сервер сокетов, основанный на том, что был на CodeProject, который сам проистекает из оригинальной Microsoft пример.
В обоих случаях входящее сообщение немедленно возвращается отправителю с использованием того же SocketAsyncEventArgs. В моем случае мне нужно отправить входящее сообщение для дальнейшей асинхронной обработки до ответа клиенту.
Проблема заключается в том, что возвращаемый ответ может попытаться использовать один и тот же SocketAsyncEventArgs в то же время, что и другое сообщение от клиента. Когда это произойдет, я получаю это исключение:
"An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance"
Итак, (я считаю) мне нужен отдельный пул SocketAsyncEventArgs для отправки сообщений. Все понятно до сих пор.
Моя проблема в том, что я не уверен, как создать исходящий SocketAsyncEventArgs, поскольку он тесно связан с входящим.
Сколько входящего можно повторно использовать? например Если я просто укажу на тот же AcceptSocket, будут ли проблемы, когда сообщения будут перемещаться в обоих направлениях одновременно?
Есть ли у кого-нибудь пример кода для вывода исходящего SocketAsyncEventArgs из входящего? Или я пропущу точку?