socket编程
文章平均质量分 76
qian_348840260
这个作者很懒,什么都没留下…
展开
-
零拷贝机制(Zero Copy)
要理解零拷贝机制,首先需要了解它所要解决的问题,试想一个场景:我们需要从磁盘读取一个文件通过网络输出到一个客户端。服务端的步骤一般是这样的: read(file, tmp_buf, len); write(socket, tmp_buf, len); 虽然只有两个步骤:从磁盘读取文件,将文件写入到socket,但是在操作系统内部经历了一个较为复杂的过程,这个过程如...转载 2020-05-01 10:20:16 · 563 阅读 · 0 评论 -
认识HTML5的WebSocket
在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API。WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看HTML5的WebSocket API:它可用于客户端、服务器端。而且有一个优秀的第三方API,名为Socket.IO。一、什么转载 2014-07-17 16:36:10 · 508 阅读 · 0 评论 -
netty入门学习(7)-ExecutionHandler
ExecutionHandler的作用直接参见文档,或参考http://my.oschina.net/XYleung/blog/119646吧,就不多说了原创 2013-05-29 18:42:56 · 3254 阅读 · 0 评论 -
netty入门学习(6)-心跳机制
在上节中,我们对超时机制进行了处理,但很多情况下超时并非逻辑错误而是业务空闲,在这种情况下,我们并不想关闭channel,所以我们一般定义一个写超时,这个写超时的时间间隔一般比读超时短很多(new IdleStateHandler(trigger,60,5,0)读超时为60s,写超时为5s),这样子如果间隔5s,没有写操作,则我们向peer发送一个心跳(短字节)唤醒对方,SocketLinkSta原创 2013-05-29 18:40:39 · 7011 阅读 · 6 评论 -
netty入门学习(3)-客户端写消息,服务端应答
一:服务端import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.charset.Charset;import java.util.concurrent.Executors;import org.jboss.netty.bootstrap.ServerBootstrap;impor原创 2013-05-29 16:43:43 · 2929 阅读 · 0 评论 -
netty入门学习(5)-超时处理
服务端和客户端同时增加如下代码: Timer trigger=new HashedWheelTimer(); final ChannelHandler timeOutHandler=new ReadTimeoutHandler(trigger,60);// final ChannelHandler idleStateHandler=new IdleStateHandler(trigg原创 2013-05-29 18:29:52 · 11645 阅读 · 0 评论 -
netty入门学习(4)-LengthFieldPrepender和LengthFieldBasedFrameDecoder
在netty入门学习(1)中我们曾经提到NIO为了提高效率,默认情况下可以服务端一次write造成客户端多次read,或者服务商多个write但客户端一次全读取过来。模拟演示如下:改正前:服务端:import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.charset.Charset;原创 2013-05-29 17:44:58 · 5830 阅读 · 1 评论 -
netty入门学习(2)-一个简单的netty实例
一:服务端import java.net.InetSocketAddress;import java.util.concurrent.Executors;import org.jboss.netty.bootstrap.ServerBootstrap;import org.jboss.netty.channel.ChannelHandlerContext;import org.jbo原创 2013-05-29 16:10:00 · 1549 阅读 · 0 评论 -
netty入门学习(1)-从NIO说起
学习netty之前,先来一个NIO的入门级示例(当然netty不仅仅对NIO进行了封装支持,对BIO同样也支持,本系统只针对NIO进行处理):一:服务端import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuf原创 2013-05-29 16:02:42 · 1667 阅读 · 0 评论