У меня есть клиент .NET TCP, который отправляет большие тома сообщений на (TCP-сервер async).Дизайн клиента большого объема TCP
Мне нужно продолжать отправлять сообщения на сервер, но из-за TIME_WAIT у меня закончились порты на клиенте.
Как программа может постоянно и надежно отправлять сообщения без использования всех доступных портов?
Есть ли способ повторного использования одного и того же сокета. Я посмотрел на Disconnect() и флаг сокета REUSEADDRESS, но не нашел хороших примеров их использования. Фактически большинство источников утверждают, что не использовать Disconnect, как для более низкого уровня использования (т. Е. Он только перерабатывает дескриптор сокета).
Я думаю, что мне нужно переключиться на UDP или, возможно, есть метод с использованием C++ и IOCP?
Разве это не очень плохо? Предположим, что у вас 1000 подключений. Вы предполагаете, что должно быть 1000 потоков? – Arafangion 2010-10-14 04:48:27