V
V
vetedde2020-11-30 15:10:44
Arduino
vetedde, 2020-11-30 15:10:44

How to connect to loaclhost with Arduino via ethernet shield?

I need to send data from arduino to a local server that will run on my computer. The computer is connected to wi-fi, Arduino Uno with Ethernet Shield through a cable to the router.

I took the standard sketch from the WebClient examples and changed it to my IPv4 address, which I found through ipconfig. This should have solved the problem, but the port monitor displays connection failed. What could be the problem?

5fc4e0fed8a2c783626540.png

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192, 168, 1, 4);  // numeric IP for Google (no DNS)
//char server[] = "localhost";    // name address for Google (using DNS)

IPAddress ip(192, 168, 1, 229);

EthernetClient client;

void setup() {
  Serial.begin(9600);
  Ethernet.init(4);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 3000)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: localhost");
    client.println("Connection: close");
    client.println();
  }
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop()
{
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
C
Codebaker, 2020-11-30
@Codebaker

Do you already have a server running on port 3000 on the local machine with the address 192.168.1.4? If not yet, here is your answer.
By the way, judging by the code, this should be a Google service (if you decide to run something on your machine, then it should be some kind of proxy to the Google search engine). The original was something like 216.239.32.10? Only return the port to 80. Leave it and try running the sketch.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question