Что посоветуете использовать из существующего или для разработки собственной технологии. Требуется создать транспорт передачи данных как в локальной сети так и через интернет? Желательно использовать надстройки над HTTP для безболезненного преодоления возможных барьеров. Также буду благодарен если подскажете как не использовать Base64 при передаче, чтобы не увеличивать расход трафика.
Попробуйте .NET Remoting. Штука весьма и весьма прозрачная, сервер экпортирует некий объект, с которым клиент в свою очередь работает. Все типы спокойно маршалятся, ни о чём задумываться не надо. Транспорт поверх Http наличествует.
Для ипользования TCP требуется отслеживать порты, открыватьпри соединении с удаленной машиной. Если открыта только часть портов (80, 21 и т.п.) то TCP сервер не поможет. Кроме того следует рассмотреть случаи наличия более одной сетевой карты.
Я наверно просто туплю, но HTTP же использует TCP как транспорт… поэтому все эти проблемы остаются и с HTTP. Вы пишете Client-Server систему? При двух сетевых картах у них будет 2 ип, как в HTTP так и в TCP.
WCF с соответствующим биндером (в данном случае на уровне HTTP). Если нужна полная универсальность и контроль над форматом данных — используйте CustomBinding.