[En-Nut-Discussion] TCP MSS
András Szemző
szemzo.andras at gmail.com
Wed Sep 30 12:05:15 CEST 2009
Ole,
Thanks for the fast reply and help, i will rewrite my code
and try this way.
Regards,
Andras
On Sep 30, 2009, at 11:53 AM, Ole Reinhardt wrote:
> Hi Andras,
>
>> But I have a problem on doing the same on a GPRS link. I tried to
>> read
>> the file by 256, 128 or 64 byte chunks,
>> but after 2 256 byte read the fread only read 24 byte. The same is
>> true for 128 or 64 byte chunk, so I always read
>> 536 byte, which is default TCP_MAXSEG.
>
> I don't know if I understand your problem correctly. But let me try to
> explain... The GPRS modem is connected by a serial line, right? Caused
> by buffersizes etc. the fread from a serial line is not garanteed to
> always return the same number of bytes you asked for...
>
> So fread(buffer, 1, 256, stream); will not necessarily return 256
> bytes.
> That's independent on the device you read from and depends on the
> driver
> internal buffering and / or the transport media the dataflow is read
> from. IP packages might be larger then 256 bytes, so on an ethernte
> cable, where the MTU is set to approximately 1500 bytes you may always
> receive full IP packages of 256 in just on fread. But on another
> transport medium like GPRS you might perhaps just read two times 256
> bytes, next 24 as this is what your driver is giving you at the
> moment.
> Eventually even the packet size of grps is somewhat more limited, but
> this is far beyond my knowledge..
>
> If you always want to read 256 bytes try a construct like this:
>
> uchar buffer[256];
> int offset;
> int size;
>
> offset = size = 0;
>
> do {
> size = fread(&buffer[offset], 1, 256-offset, stream);
> offset += size;
> } while (size > 0) && (offset < 256);
>
> Bye,
>
> Ole
>
>
> --
> _____________________________________________________________
> | |
> | Embedded-IT |
> | |
> | Ole Reinhardt Tel. / Fax: +49 (0)271 7420433 |
> | Luisenstraße 29 Mobil: +49 (0)177 7420433 |
> | 57076 Siegen eMail: ole.reinhardt at embedded-it.de |
> | Germany Web: http://www.embedded-it.de |
> |_____________________________________________________________|
>
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
More information about the En-Nut-Discussion
mailing list