Используем архитектуру сервер-клиент. Был написана своя библиотека. Но как оказалось — при работе с сокетами и сетями есть куча нюансов, которые, к сожалению выясняются только после спотыкания на них, а углубленно заниматься этим вопросом как-то не хочется ибо не по профилю и сродни изобретению велосипеда.
В результате решил спросить — посоветуйте бесплатную или платную библиотеку для связи сервер-клиенты ?
Что надо:
1) Нативная .NET — сборка (или хороший враппер). Малое ресурсопотребление.
2) БЫСТРАЯ пересылка данных от 100 байт до 100 мегабайт. Поддержка работы вида "послал данные — принял ответ".
3) Встроенный протокол обмена — на входе только Byte[], остальное внутри автоматически
4) Работа в условиях перегруженной сети, пропадания сети на время до секунды, отсутствия свободных сокетов и пр
5) Отслеживание ситуаций с обрывом связи и вылетом приложения на другом конце во время передачи данных. Вроде ситуаций, что если принята половина данных — ждать вторую половину более 10 сек — уже безсмысленно, надо сообщение об ошибке связи выдавать.
P.S. У нас не настолько плохая библиотека, не надо отсылать к статьям для чайников вида "как сделать простейший чат на TCP\IP если не интересует результат".
P.P.S. Есть ли резон перейти на WFC ? Скорость — требуется.
Здравствуйте, Nikolay_P_I, Вы писали:
N_P>P.P.S. Есть ли резон перейти на WFC ? Скорость — требуется.
Имеет смысл попробовать. WCF достаточно гибкая штука, в стандартной привязке в TCP транспортом и binary энкодингом должна быть вполне приемлемая скорость. А если не будет удовлетворять, всегда есть возможность прикрутить свой форматтер и энкодер.
К тому же ситуации описанные в п.п. 4-5 должны по идее решаться простым включением ReliableSession.