Здесь другой вопрос С#/. NET, основанный только на любопытстве больше, чем насущная потребность...
Если у вас был экземпляр Socket, и вы хотели его обернуть в классе TcpClient более высокого уровня, возможно ли это и как вы это сделаете?
И наоборот, если у вас есть экземпляр TcpClient, возможно ли получить базовый Socket?