У меня есть Netduino Plus 2, выйдите в веб-службу, чтобы найти некоторые значения, которые я бы хотел использовать в моем проекте. Одним из значений, которые я проверил Netduino, является его предпочтительный IP-адрес. Если Netduino имеет другой IPAddress, чем его предпочитаемый, я хочу его изменить.Как правильно изменить статический IP-адрес с помощью Microframework?
У меня есть метод в моем проекте под названием BindIPAddress (ниже), который берет строку.
Я получаю исключение SocketException с кодом 10022 для недопустимого аргумента. Это происходит, когда я вызываю this.Socket.Bind. Мой класс имеет свойство Socket для хранения значения Socket. Это потому, что у моего сокета уже есть конечная точка? Я попытался добавить this.Socket = null, а затем this.Socket = new (....... мышление нам нужен новый сокет для работы с, но это вернуло ту же ошибку.
Пожалуйста, сообщите, как я могу изменить мой IP-адрес от одного статического IP-адреса на другой.
public void BindIPAddress(string strIPAddress)
{
try
{
Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()[0].EnableStaticIP(strIPAddress, "255.255.240.0", "10.0.0.1");
Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()[0].EnableStaticDns(new string[] { "10.0.0.2", "10.0.0.3" });
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(strIPAddress), 80);
this.Socket.Bind(ep);
this.IpAddress = strIPAddress;
}
catch(SocketException exc)
{
Debug.Print(exc.Message);
Debug.Print(exc.ErrorCode.ToString());
}
catch(Exception ex)
{
Debug.Print(ex.Message);
}
//Debug.Print(ep.Address.ToString());
}
Является ли мой подход неправильным? –
Создал ли объект сокета, правильно вызвав его конструктор, прежде чем связывать его? Конструктор Socket по умолчанию принимает три аргумента: AddressFamily, SocketType и ProtocolType. Прежде чем связывать ваш сокет с EndPoint, убедитесь, что вы его успешно создали. – Unavailable