Java套接字Socket编程--TCP参数
在Java的Socket中,主要包含了以下可设置的TCP参数。 属性 说明 默认值 SO_TIMEOUT 对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长空等待时间。 0 TCP_NODELAY 是否一有数据就马上发送。 false SO_LINGER 优雅地关闭套接字,或者立刻关闭。 -1 SO_SNDBUF 发送数据的缓冲区大小。 8K SO_RCVBUF 接收数据的缓冲区大小。 8K SO_KEEPALIVE 是否启用心跳机制。 false SO_REUSEADDR 是否地址重用。 false BACKLOG 服务端处理线程全忙后,允许多少个新请求进入等待。 50 1.1 BACKLOG BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最大长度。如果未设置或所设置的值小于1,Java将使用默认值50。 ServerSocket serverSocket = new ServerSocket(8080, 100); 1.2 TCP_NODELAY 在TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据