Go Down

Topic: Ethernet Shield sending byte by byte? (Read 12115 times) previous topic - next topic


Additional information: apparently no one involved in developing the Ethernet Library has tested communications with web servers other than Apache. The library as-is will not communicate with lighttpd. Phil's modification above does allow communication, you will need to take care to render each line into a complete string before trying to println() it; multiple print() commands per line will not work.

Hmmm, that's interesting. Is that standards compliant behaviour? I would have thought it didn't matter how the bytes arrived to the server, just that they did...



I don't pretend to know the standards...just that Apache tends to be way more forgiving than some other servers. I ran into another problem with lighttpd on an unrelated (XPort) issue. In that case, the AF_XPort library was definitely doing something wrong, but Apache would ignore it.

I have gone on to test lighttpd a little more, and while it definitely didn't work at one byte per packet, it seems to work with at least a few bytes per packet. Have not determined the lower limit, but several chunks per line seems to work.
Unique RGB LED Modules and Arduino shields: http://www.macetech.com/store


Since an IP network can fragment packets enroute (e.g. if an intermediary network has a smaller MTU than the originator), it seems to me that any server that can't deal with fragmented packets is broken.

The arduino ethernet code does need some work in this area (and that seems to be taking place), but I don't think we can blame this one on the arduino.



Well, lighttpd works fine with all the web browsers and runs huge installations, like Sourceforge, Youtube, Wikipedia, Myspace, Imageshack, etc. Arduino is the hack here, not lighttpd, so I'm inclined to blame us first.

I'll do more testing and try to narrow the exact cause of the problem, it may have even been my code at the time and maybe I fixed two things at once.
Unique RGB LED Modules and Arduino shields: http://www.macetech.com/store


I'm having similar problems with Apache, I tried it on multiple servers, no luck..

I managed to use your client.status() to track down part of the problem, see this topic:



If someone needs an ugly workaround, without touching the libraries - just use a proxy :)

Go Up