即时通讯软件用户之间建立p2p通讯方法:p2p网络中的中继转发部分(transfer)系统的发送部分(sender)系统的接收部分(receiver)
(1)中继转发部分(transfer)
transfer主要负责提供匿名通信的服务,接收sender不同类型的消息,对其信息进行解密操作并且传递到jxta网络中下一个peer的transfer,如果是Z终结点peer就首先建立与receiver的连接,然后将信息解密之后,再解析xml文件得到数据传递到receiver。然后再接收receiver不同类型的消息,对其信息进行加密操作并且传递到下一个peer的transfer ,直到传回到sender。在sender请求建立通道时,必须根据sender 请求信息判断这个transfer是作为中间结点处理数据还是作为Z终结点处理数据,两者的处理信息方式有很大区别。如果信息传递过程中出现问题,将出错信息传回receiver。
(2)发送部分(sender)
sender主要负责查找jxta网络中提供匿名通信服务的transfer,通过找到的transfer建立起一条基于p2p网络的通道,然后就可以在这条通道上建立每一个socket通话连接,这样通过这条通道就可以传递不同类型的信息(请求建立通道、数据、请求结束通话、请求关闭通道、建立通道允许、结束通话允许、关闭通道允许以及出错信息)。在接收到receiver传递过来的信息时,由于经过加密得到的是密文,必须按照建立的p2p网络路径的顺序进行解密,才能得到所需要的明文数据。在传递信息时,把需要传递的信息封装成xml的格式,这样在需要使用这些信息的transfer上就可以解析出所需要的数据,以便于进行下一步的操作。
(3)接收部分(receiver)
receiver主要负责在接收到p2p网络中的transfer传递过来时的socket连接请求时同意socket连接,列出和自己建立连接的sender,通过选择sender进行基于p2p网络的信息传递。在接收到p2p网络中的transfer传递过来时的socket通话结束请求时关闭socket连接,同时取消在列表中的sender,这样receiver就无法与结束通话的sender再次取得联系。在receiver关闭时,必须通知所有已经与自己连接的sender,sender才可以关闭与这个receiver的连接。