Go Down

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

follower

Quote
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...

--Phil.

macegr

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

kg4wsv

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.

-j


macegr

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

XNDR

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:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238295170

Robert Curth

If someone needs an ugly workaround, without touching the libraries - just use a proxy :)
Check out my Arduino devices [link=http://www.zipfelmaus.com/blog/tag/arduino/]here[/link]

Go Up