Ethernet sends a String one char at a time

I must do

String str = "Hello World";
int n = str.length()+1;
char st[n];
str.toCharArray(st,n);
client.print(st);

instead of

client.print(str)

to send s String in on one TCP/IP packet.

The problem is in Print.cpp:

void Print::print(const String &s)
{
for (int i = 0; i < s.length(); i++) {
write(s*);*

  • }*
    }
    and then every write(char) is send in Client.cpp
    as in one TCP/IP packet. That sinks the transfrer
    rate a lot.
    It might be idea to do a write(const String &) in Print and
    then implement print(const String &) by calling that.
    And then in Client one must override write(const String &)
    by writing all chars to same packet.
    One problem to implement that is that
    void String::toCharArray(char *buf, unsigned int bufsize)
    and
    void String::getBytes(unsigned char *buf, unsigned int bufsize)
    are not const methods as they should be.
    :frowning:

This is a hardware problem?

Sorry wrong place. How do I remove post from this topic group?

How do I remove post from this topic group?

Don't worry about it. Leave it here, but add a link to the new topic in the software forum.

Moved to SW bugs:

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

Thanks.

Sorry, the correct move address is:

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

:-X