Actually all the current OS have "TCP autotuning" that will update the read buffer size to an optimal value... isn't it possible to keep this behaviour with Java sockets? :(
2010/6/24 Emmanuel Lecharny <[email protected]>: > On 6/24/10 5:27 PM, Alexander Christian wrote: >> >> On Thu, 24 Jun 2010 17:22:48 +0200, Emmanuel Lecharny >> <[email protected]> >> wrote: >> >>>> >>>> So to get it clear: If I now wish to change the buffer's size, I have >>>> >> >> to >> >>>> >>>> do it on server side BEFORE i call "bind()" on the acceptor, correct? >>>> >>> >>> 100% correct. >>> >> >> fine. >> >> >>>> >>>> If it's afterwards not possible to change the buffer size, should't >>>> >> >> there >> >>>> >>>> be at least a note in the javadoc, or the better an exception? >>>> >>> >>> In fact, it's already documented in the Java api : >>> >>> >> >> >> http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html#setReceiveBufferSize%28int%29 >> >>> >>> " The value of SO_RCVBUF is also used to set the TCP receive window that >>> >> >> >>> >>> is advertized to the remote peer. Generally, the window size can be >>> modified at any time when a socket is connected. However, if a receive >>> window larger than 64K is required then this must be requested *before* >>> the socket is connected to the remote peer. There are two cases to be >>> aware of: >>> >>> 1. For sockets accepted from a ServerSocket, this must be done by >>> calling |ServerSocket.setReceiveBufferSize(int)| >>> >>> >> >> >> <http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html#setReceiveBufferSize%28int%29> >> >>> >>> before the ServerSocket is bound to a local address. >>> >>> 2. For client sockets, setReceiveBufferSize() must be called before >>> connecting the socket to its remote peer." >>> >> >> I read this too. But didn't you say that it's not possible to change the >> buffer size after the server is connected? According to this javadoc, the >> socket's (client+server) allows this (at least for sizes<=64k). >> > > Yes, for a size < 64k. >> >> > > > -- > Regards, > Cordialement, > Emmanuel Lécharny > www.nextury.com > > >
