TcpClient имеет один метод Connect, который принимает имя хоста как строку и порт.
TcpClient.Connect(String hostname, Int32 port)
Есть еще один вариант, который использует IPEndPoint.
TcpClient.Connect(IPEndPoint endpoint)
Я предполагаю, что первый вариант выше должен использовать поиск DNS, чтобы получить IP-адрес от имени хоста до установления соединения TCP, в то время как второй не должен это делать Я не знаю, оптимизирован ли первый, чтобы проверить, содержит ли имя хоста только прямой IP-адрес или он выполняет поиск DNS каждый раз.
Итак, мой вопрос: быстрее ли второй вариант, когда я уже знаю IP-адрес?
приписка
Я занимаюсь разработкой для Windows Mobile (6.1) и тестирую ее через маршрутизатор в моей локальной сети. Когда маршрутизатор подключен к открытому интернету, соединения происходят быстро, и я получаю быстрый ответ от сервера. Но когда я использую только свою локальную сеть (т. Е. Маршрутизатор отключен от открытого Интернета), соединения, кажется, требуют вечности. Не знаю, ускоряет ли открытый интернет разрешение DNS.