Отправка HTTP-запроса с Arduino Ethernet на сервер на ПК

Я просто пытаюсь отправить простой HTTP-запрос с Arduino Uno с помощью w5500 Ethernet Shield на локальный сервер, работающий на моем ПК.

Они соединены через перекрестный кабель Ethernet, и я могу разместить сервер на Arduino, доступный из браузера моего ПК. Теперь я пытаюсь использовать ПК как сервер, а Arduino как клиент.

Используя простой пример WebClient, я могу отправить успешный запрос GET на google.com с Arduino.

Вот что я пытаюсь сделать, но не получается:

1 - Запустить локальный сервер через запуск http-server в моей командной строке. Это успешно запускает сервер по адресу 192.168.56.1:8080, к которому я могу получить доступ через свой браузер

2 - Измените пример веб-клиента для использования

IPAddress server(192,168,56,1); 

и измените порт на

if (client.connect(server, 8080)) 

3 - Запустите этот скетч Arduino. Соединение не устанавливается, и я не знаю, почему. Я разрешил порту 8080 полный доступ на вход через брандмауэр Windows.

Есть идеи?

, 👍2

Обсуждение

Отредактировал ваш вопрос, чтобы удалить неправильное использование термина «localhost» — по определению, это относится к компьютеру, *общающемуся сам с собой* по интерфейсу обратной связи, чего вы здесь не делаете., @Chris Stratton

Спасибо за исправления! Вы оба абсолютно правы, и это помогает мне понять localhost, @nmarie22

Какой веб-сервер вы используете на своем ПК? Есть один, который идет с Visual Studio, который принимает только соединения с локального хоста. Можете ли вы использовать другое устройство (например, телефон) и попытаться подключиться к веб-серверу? Также какой IP-адрес (и маска и шлюз по умолчанию) у Arduino?, @Code Gorilla

Я запускаю простой сервер узла (https://www.npmjs.com/package/http-server) для начального тестирования, чтобы понять, как все это подключить. Я не могу подключиться через свой телефон (перейдя на 192.168.56.1:8080), но я могу упустить какой-то шаг. Они находятся на одном и том же Wi-Fi-подключении, а брандмауэр Windows отключен, @nmarie22


1 ответ


Лучший ответ:

1

Ответ был прост. Вместо того, чтобы пытаться подключиться к IP-адресу локального сервера (192.168.56.1), мне пришлось использовать IP-адрес Ethernet-подключения между Arduino и ПК (найденный с помощью команды ipconfig в командной строке).

,