eMule连接到进ed2k网络分析

本文详细分析了eMule客户端如何连接到ed2k网络的过程,包括启动客户端、连接服务器、用户提交ed2k连接等步骤。重点讨论了连接建立的几个可能情况:高ID、低ID和被拒绝的会话。还介绍了TCP连接后的登录请求内容以及eMule通信协议的基本约定,包括协议编码、客户端与服务器间的TCP和UDP信息交互。
摘要由CSDN通过智能技术生成

上一篇博客已经介绍eMule客户端的初始化过程及相关代码梳理,这里将接着介绍第二个步骤 连接到ed2k服务器

 

Emule 客户端使用场景分析,当我们要下载一个ed2k 文件时 ,可以分为以下几步:

一 。启动emule客户端(这时候就开始初始化,主要是对Config文件夹下的文件(比如Server.met等)进行反序列化,生成相应实例,存储信息(包括ed2k服务器地址及端口号),相关博客)。

二. 客户端必须连上某个服务器(可能会从服务器列表中依次尝试,直到连上为止,连上以后客户端就加入了emule网络,成为协议节点)。

三. 用户就向服务器传递ed2k连接(这是用户已知道ed2k连接的情况,如果用户不知道ed2k连接,就可向服务器发送关键词,服务器会返回很多链接,这时再提交连接就一样的过程了)。

四. 提交ed2k连接以后,就表示用户要下载文件,服务器就返回存储文件的文件源客户端。

五. 用户得到文件源客户端的信息后,就发起到某个源客户端的回话;

六. 原客户端收到会话请求后就排队等待上传文件(排队的是请求发起客户端);

七. 原客户端选择用户客户端,开始上传;

八. 用户客户端从原客户端下载文件数据库块。

九. 结束下载完成会话(用户客户端)。

十. 源文件客户端从队列中选择一个等待客户端,进行数据传送。

 

上一篇博客中,得到了服务器列表这里就开始连接服务器(这里会涉及到一些概念,例如客户端id,扩展协议,若不清楚的请看另一篇博客,描述了相关概念,),还得提前说明,这里的连接不仅是数据可以发过去(可以相互交换数据),而是连接到ed2k网络(在交换信息的基础上还得登陆成功),在准备建立与服务器的连接时,客户端会尝试并行地连接到几个服务器,根据成功的登陆顺序放弃其他的。

有下面几个可能的连接建立个案:

1、高ID连接-服务器分配一个高ID给正在连接的客户端

2、低ID连接-

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值