Re: change socket buffer size

Fons Rademakers (Fons.Rademakers@cern.ch)
Tue, 12 May 1998 17:26:30 +0200


Hi Judith,

you can send messages of arbitrary length. Messages are split in
as many sends as needed. The kSendBuffer and kRecvBuffer sizes are
the buffer sizes used by the TCP/IP stack when sending messages.
So if you send a TMessage of 1 MB and kSendBuffer is 50K the ROOT
will send the TMessage in 20 messages of 50K. This is completely
transparent on the user level. Just do socket->Send(mess). All
splitting and assembling is done by ROOT. When sending large messages
you benefit from a large kSendBuffer (+/- 53K is OS upper limit).
You can specify 65K, and with TSocket::GetOption you can see the
actual upper limit accepted by the OS (see $ROOTSYS/tutorials/hserv.C).

Cheers, Fons.

Judith Katzy wrote:
>
> hi,
>
> I'd like to send a TMessage object with a size > 65535 using the
> TSocket::Send() method.
> I saw that the TSocket options kSendBuffer and kRecvBuffer are
> 65535/UShort. Is it possible to change this? (if yes, how could I do
> it?)
> Or do I have find a work around, e.g. splitting my message into smaller
> pieces?
>
> cheers,
> Judith

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland          Phone: +41 22 7679248
E-Mail: Fons.Rademakers@cern.ch              Fax:   +41 22 7677910