
java 网络编程
zhouzuixin
这个作者很懒,什么都没留下…
展开
-
java socket参数详解:SO_REUSEADDR
SO_REUSEADDR选项用于决定如果网络上仍然有数据向旧的ServerSocket传输数据,是否允许新的ServerSocket绑定到与旧的ServerSocket同样的端口上。SO_REUSEADDR选项的默认值与操作系统有关,在某些操作系统中,允许重用端口,而在某些操作系统中不允许重用端口。当ServerSocket关闭时,如果网络上还有发送到这个ServerSocket的数据,这个S转载 2014-05-21 19:17:18 · 5784 阅读 · 0 评论 -
java socket参数详解:SoLinger
启用/禁用具有指定逗留时间(以秒为单位)的 SO_LINGER。最大超时值是特定于平台的。 该设置仅影响套接字关闭。默认值为-1,表示禁用。这个Socket选项可以影响close方法的行为。在默认情况下,当调用close方法后,将立即返回;如果这时仍然有未被送出的数据包,那么这些数据包将被丢弃。如果将linger参数设为一个正整数n时(n的值最大是65,535),在调用close方法后,将最多转载 2014-05-21 19:05:59 · 736 阅读 · 0 评论 -
java socket参数详解:TcpNoDelay
原文链接:http://blog.youkuaiyun.com/huang_xw/article/details/7340241TcpNoDelay=false,为启用nagle算法,也是默认值。 Nagle算法的立意是良好的,避免网络中充塞小封包,提高网络的利用率。但是当Nagle算法遇到delayed ACK悲剧就发生了。Delayed ACK的本意也是为了提高TCP性能,跟应答数据捎带上AC转载 2014-05-21 19:12:24 · 1029 阅读 · 0 评论 -
java socket参数详解:BackLog
输入连接指示(对连接的请求)的最大队列长度被设置为 backlog 参数。如果队列满时收到连接指示,则拒绝该连接。注意: 1. backlog参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。 2. 经过测试这个队列是按照FIFO(先进先出)的原则。3. 如果将accept这个函数放在一个循环体中时,backlog参数也不会有什么作用。或者简单的讲运行Serv转载 2014-05-21 19:03:13 · 656 阅读 · 0 评论 -
java socket参数详解:SendBufferSize和ReceiveBufferSize
原文链接:http://blog.youkuaiyun.com/huang_xw/article/details/7338668TCP发送缓存区和接收缓存区,默认是8192,一般情况下足够了,而且就算你增加了发送缓存区,对方没有增加它对应的接收缓冲,那么在TCP三握手时,最后确定的最大发送窗口还是双方最小的那个缓冲区,就算你无视,发了更多的数据,那么多出来的数据也会被丢弃。除非双方都协商好。转载 2014-05-21 19:11:21 · 1390 阅读 · 0 评论 -
java socket参数详解:KeepAlive
原文链接:http://blog.youkuaiyun.com/huang_xw/article/details/7338663keepalive不是说TCP的常连接,当我们作为服务端,一个客户端连接上来,如果设置了keeplive为true,当对方没有发送任何数据过来,超过一个时间(看系统内核参数配置),那么我们这边会发送一个ack探测包发到对方,探测双方的TCP/IP连接是否有效(对方可能断点转载 2014-05-21 19:10:15 · 692 阅读 · 0 评论 -
java socket参数详解:SoTimeout
原文链接:http://blog.youkuaiyun.com/huang_xw/article/details/7338659设置socket调用InputStream读数据的超时时间,以毫秒为单位,如果超过这个时候,会抛出java.net.SocketTimeoutException。当输入流的read方法被阻塞时,如果设置timeout(timeout的单位是毫秒),那么系统在等待了ti转载 2014-05-21 19:09:14 · 618 阅读 · 0 评论 -
java socket参数详解:OOBInline和UrgentData
TCP的紧急指针,一般都不建议使用,而且不同的TCP/IP实现,也不同,一般说如果你有紧急数据宁愿再建立一个新的TCP/IP连接发送数据,让对方紧急处理。但是,虽然sendUrgentData的参数data是int类型,但只有这个int类型的低字节被发送,其它的三个字节被忽略。下面的代码演示了如何使用SO_OOBINLINE选项来发送单字节数据。[java] view pl转载 2014-05-21 19:01:06 · 1132 阅读 · 0 评论 -
Netty4 服务端启动源码分析-线程的创建
原文链接:http://xw-z1985.iteye.com/blog/1925013本文分析Netty中boss和worker的线程的创建过程:以下代码是服务端的启动代码,线程的创建就发生在其中。EventLoopGroup bossGroup = new NioEventLoopGroup(); NioEventLoopGroup的类关系图如下: 构转载 2014-06-09 15:52:55 · 1279 阅读 · 0 评论