Вам не нужно знать, какие порты открыты на вашем локальном компьютере для подключения к какой-либо удаленной службе TCP (если вы не хотите использовать определенный локальный порт, но обычно это не так).
Каждое соединение TCP / IP идентифицируется 4 значениями: удаленный IP, номер удаленного порта, локальный IP, номер локального порта, но вам нужно знать только удаленный IP и номер удаленного порта, чтобы установить соединение.
Когда вы создаете TCP-соединение, используя
TcpClient c;
c = new TcpClient(remote_ip, remote_port);
Ваша система автоматически назначит вашему соединению один из многих свободных номеров локальных портов. Вам не нужно ничего делать.
Вы также можете проверить, открыт ли удаленный порт. но нет лучшего способа сделать это, чем просто попытаться подключиться к нему.