一、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是由发送者持有的。如果数据没有发送完成,重复执行该过程。

混传数据总结与梳理

相关文章:

  • 2021-10-31
  • 2021-06-12
  • 2022-01-01
  • 2021-06-11
  • 2021-12-13
  • 2022-12-23
  • 2021-06-24
猜你喜欢
  • 2022-03-09
  • 2021-05-05
  • 2021-04-16
  • 2021-08-01
  • 2021-08-23
  • 2021-07-18
  • 2021-07-20
相关资源
相似解决方案