混传数据总结与梳理

43 篇文章 3 订阅

一、Connector类

Connector中的SocketChannel是Sender和Receiver的实现类,因此Selector具有接收和发送的功能。

发送时,将SocketChannel封装成一个StringSendPacket,接收时将StringReceivePacket解析为Striing

 

二、发送接收的流程

发送者和接收者是一个整体,都是由SocketChannelAdapter中SocketChannel实现的。

首先,对数据IoArgs进行读(写)。

通过IoProvider进行事件调度,包括读的事件调度ReadSelector、写的事件调度WriteSelector。sender或者receiver会通过IoProvider进行注册。

读或者写操作时会触发相应的读、写事件机制,并通过线程回调回去。在回调中完成事件真正的发送、读取操作。

 

 

三、解决数据传出过程中出现的问题时使用的类

 

发送时,将数据Packet放到队列末尾中,然后再从队列头中获取一个Packet,将Packet中的数据写入到IoArgs里面去。

接着将IoArgs注册到Sender,调用Sender的异步发送的方法,将IoArgs、listener作为参数,当sender经过Selector事件机制回调后,发送IoArgs中的数据。发送完成后,执行发送完成的回调。该listener是由发送者持有的。如果数据没有发送完成,重复执行该过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值