¿Cuál es la mejor manera de hacer ping a un cliente en un puerto específico después de establecer una conexión TCP entre el cliente y el servidor?

Una conexión TCP REQUIERE un puerto de origen y de destino para establecer una conexión en primer lugar, por lo que no necesita una conexión TCP para intentar ‘hacer ping’ a un cliente en un puerto específico. De hecho, eso es lo que hace TCP cuando intenta establecer una conexión.

Quizás se refiere a una conexión IP, que en sí misma es un nombre inapropiado, ya que IP no tiene conexión. Así que vamos con la conectividad IP confirmada entre dos dispositivos.

‘ping’ (el servicio de red) usa ICMP directamente sobre IP, en lugar de TCP, y no usa puertos TCP per se.

Como se indicó en otras respuestas, una forma fácil (y popular) de intentar ver si un cliente está ‘vivo’ (es decir, escuchando) un puerto dado es usar el servicio ‘telnet’ con un puerto específico que no sea su puerto predeterminado de 23 (que es lo que escuchan los servidores telnet, de manera predeterminada, para las solicitudes para conectar una sesión telnet). Dado que el servicio de telnet en el lado del cliente esperará iniciar una conexión de telent, el intento de conexión de telnet fallará. Sin embargo, dado que esto es diferente al tiempo de espera de la solicitud (es decir, debido a que el puerto no está escuchando o debido a un problema de IP), puede usar ese resultado para inferir que el puerto está “vivo” en el host en cuestión.

Ping está relacionado con el protocolo ICMP, no utiliza puertos.

Pero la mejor manera de enviar un paquete al cliente después de establecer una conexión TCP es obtener la dirección del cliente y hacer una conexión a ese puerto específico al que se refiere.

Ping, el comando, no permite la selección de un puerto específico. Un programa que es un escáner de puertos como nmap puede brindarle información.
Si está habilitada, la instancia predeterminada de Motor de base de datos de SQL Server escucha en el puerto TCP 1433. Las instancias con nombre de Motor de base de datos y SQL Server Compact 3.5 SP2 están configuradas para puertos dinámicos. Esto significa que seleccionan un puerto disponible cuando se inicia el servicio SQL Server. Cuando se conecta a una instancia con nombre a través de un firewall, configure el Motor de base de datos para escuchar en un puerto específico, de modo que se pueda abrir el puerto apropiado en el firewall.
Al seleccionar un número de puerto, seleccione un número sin asignar. Evite números superiores a 49151 que Windows podría seleccionar para otros fines.

Por lo general, uso el comando telnet o netcat.