Chat here about code rewrites, mods, etc... with respect to the github project https://github.com/esp8266/Arduino

Moderator: igrr

User avatar
By gdittric
#50996 Attempting to use the IPAdress class instead of a const char* domain name but for some reason WiFiClient.connect() always fails to connect to the server. Posted code below any help would be appreciated.

Code: Select all#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <string.h>


bool connectToBase();

std::string ssid = "NETGEAR52";
std::string pass = "-----------";
IPAddress server(192,168,0,3);
WiFiClient client;

void setup() {
  Serial.begin(115200);
  //WiFi.mode(WIFI_STA);
 
  Serial.print("Connecting to ");
  Serial.println(ssid.c_str());
  Serial.println(WiFi.begin(ssid.c_str(), pass.c_str()));
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("Attempting connection");
  while(!client.connect(server, 80)){
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("Connected");
}

void loop() {
 
}
User avatar
By martinayotte
#51116 I've tried it with some of my own servers, using IP works fine.

BTW, you can still use IP as a String, so both ways were working for me :

Code: Select all  IPAddress ipaddr(10,111,111,11);
  if (!client.connect(ipaddr, 80)) {


Code: Select all  if (!client.connect("10.111.111.11", 80)) {


Which version of ArduinoESP framework are you using ? (on my side, it was using stable 2.3.0)