Socket编程缓冲区

Scoket缓冲区必须在连接之前去创建:缓冲区大小需要根据具体情况进行设置,一般要低于64K(TCP能够指定的最大负重载数据量,TCP的窗口大小是由16bit来确定的),增大缓冲区可以增大网络I/O的性能,而减少缓冲区有助于减少传入数据的backlog(就是缓冲长度,因此提高响应速度)。对于Socket和SeverSocket如果需要指定缓冲区大小,必须在连接之前完成缓冲区的设定。

这里的缓冲区大小在android系统中不一定是最大低于64K,因为测试了一下,我在传输camera的预览数据的时候,

默认客户端的sendbuffersize的大小是524288,我设置他为10Mb的时候再去获取一下他的sendbuffersize得到来的是4Mb的,所以最大的为4Mb

默认服务器的receiveBufferSize的代销是110208,。


代码如下:

Socket socket =newSocket();

//输出缓冲区大小

System.out.println(socket.getSendBufferSize());

System.out.println(socket.getReceiveBufferSize());

//重置缓冲区大小

socket.setSendBufferSize(1024*32);

socket.setReceiveBufferSize(1024*32);

//再次输出缓冲区大小

System.out.println(socket.getSendBufferSize());

System.out.println(socket.getReceiveBufferSize());

详情可参考:http://blog.sina.com.cn/s/blog_616e189f0100s3px.html

你可能感兴趣的:(Socket编程缓冲区)