UDP
virtual IPAddress remoteIP() =0;virtual IPAddress remoteIP() const =0;
you can't change a virtual function in an established Arduino core class
https://github.com/esp8266/Arduino/commit/5c4db3acf4353870b6a5663ba06d712d67e6c179#commitcomment-32254962
other networking libraries Client implementations do not implement
flushandstopwith parameter.
"The type 'UIPClient' must implement the inherited pure virtual method 'Client::stop' "
https://github.com/esp8266/Arduino/commit/83a8076db87b77de6a7b500c18b85057e38ed117#commitcomment-32254941
@jandrassy Can you please give more details ?
Also If your sketch does not compile and returns error needs to be addressed.
There are other networking libraries used with esp8266, not only the native WiFi or bundled Ethernet library (why is it there?). If you change the virtual functions of the Arduino networking base classes Client, Server, UDP the libraries don't compile. Function flush with parameter is a different virtual function then flush without parameter. The default value of the parameter doesn't change it. So now for example the UIPEthernet library or the standard Ethernet library and perhaps some GPRS libraries don't compile for esp8266 because they don't implement flush, stop, remoteIP with a parameter.
https://github.com/UIPEthernet/UIPEthernet/issues/49
To Ethernet library: The official Arduino Ethernet library was upgraded last year to 2.0.0 by Paul Stoffregen to support Wiznet 5200 and 5500. He tested it with esp8266. The Ethernet library bundled in esp8266 core package supports only W5100.
It will be addressed for next release 2.5.1
FWIW, there was an unresolved problem with DNS lookups by the Ethernet lib. Only ESP8266 has this problem. The exact same code ran perfectly on all other boards, including ESP32. I never did a deeper investigation into why that failed on ESP8266. Maybe someday....
If anyone cares about Wiznet-based Ethernet on ESP8266, please test some of the library's examples which use a text-based hostname rather than only IP numbers.
recommended
https://github.com/arduino/ArduinoCore-API
FWIW, there was an unresolved problem with DNS lookups by the Ethernet lib. Only ESP8266 has this problem. The exact same code ran perfectly on all other boards, including ESP32. I never did a deeper investigation into why that failed on ESP8266. Maybe someday....
If anyone cares about Wiznet-based Ethernet on ESP8266, please test some of the library's examples which use a text-based hostname rather than only IP numbers.
@PaulStoffregen, I tested it now and both examples with DNS work with esp8266 core 2.4.2 (hw: Wemos D1 mini clone with WIZ850io)
@d-a-v, I think the bundled Ethernet library should be removed from esp8266 arduino boards package
I think the bundled Ethernet library should be removed from esp8266 arduino boards package
That can be done after #5969 is merged.
We also can replace it by a submodule linking to @PaulStoffregen repository.
This is not mandatory since we have no examples external to this library using Ethernet class.
Comments about that are welcome.
I think the bundled Ethernet library should be removed from esp8266 arduino boards package
That can be done after #5969 is merged.
We also can replace it by a submodule linking to @PaulStoffregen repository.
This is not mandatory since we have no examples external to this library using Ethernet class.
Comments about that are welcome.
bundle only architecture specific libraries. for the Ethernet library the SPI library does the abstraction
Did you need to make changes to the new Ethernet library ? I had to (https://github.com/arduino-libraries/Ethernet/pull/96).
(@jandrassy) I tested it now and both examples with DNS work with esp8266 core 2.4.2 (hw: Wemos D1 mini clone with WIZ850io)
I currently can't make it pointing to Ethernet repo so I made a fork. It would be far better to point to master when the Ethernet PR is merged, especially for release 2.5.1 (or I'd need to keep this fork forever on my repo).
Did you need to make changes to the new Ethernet library ? I had to (arduino-libraries/Ethernet#96).
I was on 2.4.2
Most helpful comment
There are other networking libraries used with esp8266, not only the native WiFi or bundled Ethernet library (why is it there?). If you change the virtual functions of the Arduino networking base classes Client, Server, UDP the libraries don't compile. Function
flushwith parameter is a different virtual function thenflushwithout parameter. The default value of the parameter doesn't change it. So now for example the UIPEthernet library or the standard Ethernet library and perhaps some GPRS libraries don't compile for esp8266 because they don't implement flush, stop, remoteIP with a parameter.https://github.com/UIPEthernet/UIPEthernet/issues/49
To Ethernet library: The official Arduino Ethernet library was upgraded last year to 2.0.0 by Paul Stoffregen to support Wiznet 5200 and 5500. He tested it with esp8266. The Ethernet library bundled in esp8266 core package supports only W5100.