2015-01-28 3 views
0

Я пытаюсь запустить Tcpclient на коммутатор, но у меня возникают трудности. У меня есть код, который просто подключается к IP и сообщает мне, успешно ли он подключен или нет. Проблема в том, что это ничего мне не говорит.Tcpclient не подключается

код выглядит следующим образом:

Imports System.Net.Sockets 
Imports System.Net 
Imports System.Threading 
Imports System.Text 

Public Shared Sub Main() 
    Dim myTcpClient As New TcpClient() 
    Try 
     myTcpClient.Connect(IP address, 23) 
    Catch ex As ArgumentOutOfRangeException 
     Console.WriteLine(ex.Message) 
    Catch ex As SocketException 
     Console.WriteLine(ex.Message) 
    End Try 
End Sub 

Я пытаюсь сделать приложение, которое позволяет пользователю изменять Vlans на коммутаторе автоматически, поэтому любое другое предложение поможет.

+0

Просто добавьте после подключения: Console.WriteLine ("связано: {0}", myTcpClient.Connected)? – csblo

ответ

0

В соответствии с перегрузкой вы используете myTcpClient.Connect(IP address, 23), он подключает клиента к удаленному узлу TCP с использованием указанного IP-адреса и номера порта. Вы уверены, что хост (TcpListener) прослушивает и поднимает? Открыт ли порт, сначала нужно проверить эти небольшие ошибки. Если нет ни одного из них ...

Here's отличная ссылка, выполняющая именно то, что вы хотите, надеюсь, вы сочтете это полезным.

На другой ноте ....

Есть так много вещей, которые могут разорвать связь через сокет, многие из которых являются полностью вне вашего контроля, лучше держать его просто.

Вы можете сделать сердечный ритм, отправить сообщение I'm here от клиента каждые X somethings, а затем запустить сервер и посмотреть, не было ли одного для интервалов фактора X * скрипта. Использует время и пропускную способность процессора.

Другой вариант зависит от того, что ваш клиент обнаружил, что он больше не подключен и не запрашивает новое соединение. Если у вас есть уникальный идентификатор в запросе, вы можете запустить через него существующие соединения, убить его, если он есть, и начать, а затем продолжить как обычно.

Реферировано из here ...

+0

... Вопрос Noob: действительно нужен TCPListener? Я просто хочу выдать команды коммутатору или коммутаторам, чтобы изменить Vlans с помощью CMD.exe или Sendkeys. Кажется, все указывает на сокеты. – Alenhj

Смежные вопросы