D
djh_djh
Unregistered / Unconfirmed
GUEST, unregistred user!
研究了2天源码的,有个问题想通请教一下:
我看了 在 CUpDownClient在 SendFileReq时,将 SetRemoteQueneFull(1)
此时 CUpDownClient DOWN状态机 处于 DS_CONNECTED
UpLoadFileReq 发出之后,状态机处于 DS_ONQUENE 此时 RemoteQueneFull 保持为 1
只有 AcceptFileReq 或是 RandInfoAck时 RemoteQueneFull 才变 0
AcceptFileReq 时状态机 转为 DS_UPLOADING RandInfoAck状态机不变
还有一个1秒的定时器, 推动状态机,当状态处于 DS_ONQUENE时,发现
RemoteQueneFull 为1 时,状态机转为 DS_REMOTEQUENEFULL
而且在定时器没用对 DS_REMOTEQUENEFULL进行推动,
所以当 AcceptFileReq稍晚一点或是 定时器触发 时 UpLoadFileReq刚发出去,
那么,状态机就无条件处于DS_REMOTEQUENEFULL了,即使对方网络好,也进行不下去了
我看了 在 CUpDownClient在 SendFileReq时,将 SetRemoteQueneFull(1)
此时 CUpDownClient DOWN状态机 处于 DS_CONNECTED
UpLoadFileReq 发出之后,状态机处于 DS_ONQUENE 此时 RemoteQueneFull 保持为 1
只有 AcceptFileReq 或是 RandInfoAck时 RemoteQueneFull 才变 0
AcceptFileReq 时状态机 转为 DS_UPLOADING RandInfoAck状态机不变
还有一个1秒的定时器, 推动状态机,当状态处于 DS_ONQUENE时,发现
RemoteQueneFull 为1 时,状态机转为 DS_REMOTEQUENEFULL
而且在定时器没用对 DS_REMOTEQUENEFULL进行推动,
所以当 AcceptFileReq稍晚一点或是 定时器触发 时 UpLoadFileReq刚发出去,
那么,状态机就无条件处于DS_REMOTEQUENEFULL了,即使对方网络好,也进行不下去了