xsocket使用指南【官方文档翻译】

xsocket使用指南【官方文档翻译】

ID:20207668

大小:184.28 KB

页数:18页

时间:2018-10-09

xsocket使用指南【官方文档翻译】_第1页
xsocket使用指南【官方文档翻译】_第2页
xsocket使用指南【官方文档翻译】_第3页
xsocket使用指南【官方文档翻译】_第4页
xsocket使用指南【官方文档翻译】_第5页
资源描述:

《xsocket使用指南【官方文档翻译】》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、核心功能支持面向流通信主要抽象是Connection接口。通过IBlockingConnection或者INonblockingConnection对象进行数据的读写。在record或者bulk状态中,Connection对象提供了对于特定数据类型的几个方便方法。Connection实现了java.nio包中的GatheringByteChannel和WritableByteChannel接口,如果InputStream或者OutputStream对象被需要,可以使用java.nio.Channels.newInputStream()和java.n

2、io.Channels.newOutputStream()包装channel对象,因为经典的流只有在IBlockingConnection映射到经典的InputStream中时才有阻塞行为。提供的其他类型方法主要是控制连接行为和获取连接信息的方法。比如,远程链接点信息可以获取到,连接的数据冲刷行为可以被控制。这些方法都不是线程安全的。与IBlockingConnection不同的是,INonBlockingConnection在调用read方法直接返回。将IDataHandler对象赋给INonBlockingConnection对象可以使其在新

3、数据到来时被通知。当对应的事件发生时,IDataHandler对象的回调函数会被调用。除了IDataHandler也存在IConnectionHandler对象。服务器端在INonblockingConnection接口上处理接入连接。1、示例:简单TCP服务器首先定义实现了需要的接口(比如,IDataHandler,IConnectHandler,IIdleTimeoutHandler或者IConnectionTimeoutHandler),这个DataHandler会在从连接上接收到数据时被调用。classEchoHandlerimplementsIDataHandler{pu

4、blicbooleanonData(INonBlockingConnectionnbc)throwsIOException,BufferUnderflowException,MaxReadSizeExceededException{Stringdata=nbc.readStringByDelimiter("r");nbc.write(data+"r");returntrue;}}然后创建一个服务器实例,并将上面的DataHandler赋给它//createstheserverbypassingovertheportnumber&handlerIServersrv=new

5、Server(8090,newEchoHandler());//runitwithinthecurrentthread.srv.run();//thecallwillnotreturn//...orstartitbyusingadedicatedthread专用线程srv.start();//returnsaftertheserverhasbeenstarted与run方法对应的,服务器的start方法创建一个专用的线程来运行服务器。start方法在内部阻塞知道服务器启动,为了确保服务器在执行其他进一步操作前被启动,这是比较好的方法。执行服务器的close方法来优雅的关闭服务器。就

6、像其他面向连接的框架,服务器实现了java.io.Closable接口2、DataHandler的onData方法的语义分析IDataHandler的onData方法会在数据分片被接收后直接调用。要注意的是,在网络层,数据可以被分解成若干个TCP片段也可能被组合打包成一个TCP报文。在客户端执行类似于connection.write(“hello”)的写操作,并不意味着一个TCP报文到达服务器端。xSocket通过内部的读缓冲区缓冲接收到的网络数据来隐藏网络行为。在没有足够数据可用的情况下,数据分片会导致NonBlockingConnection的read方法抛出BufferUnd

7、erflowException异常。根据运行模式,在一个挂起的onData方法调用期间没有数据会在网络层被收到。通过使用NONTHREADED模式,xSocket的内部网络I/O线程执行onDataMethod所以不能读取网络层数据。BufferUnderflowException异常不处理是一个惯用的方法,xSocket会在onData方法返回时处理这个异常。classEchoHandlerimplementsIDataHandler{//thismethodwil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。