Als Protokoll würde ich HTTPS verweden - damit sind die meisten Punkte der Wunschliste abhakbar.
Nur falls die Kommunikation auch bidirektional (d.h. der Server sendet Nachrichten auch ohne vorhergehenden Request des Client) sein sollte, wären andere Protokolle (Websockets, Telnet, Stomp) passender als HTTPS.
Bei HTTP(S) sind beliebige Nachrichteninhalte (binär oder Text, z.B. JSON,
XML) übertragbar.
Indy enthält mit TIdHttpServer und TIdHttp eine umfassende server- und clientseitige Implementierung, die mit hundert Verbindungen problemlos umgehe kann.