Go Down

Topic: Ethernet sends a String one char at a time (Read 2 times) previous topic - next topic

vesal

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.

:(

PaulS


vesal

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

PaulS

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



Go Up