FileZilla FTP服务器源代码分析04

本文详细解析了FileZilla FTP服务器中的消息处理机制,包括WM_FILEZILLA_SERVERMSG消息的具体分类及其参数含义,例如FSM_STATUSMESSAGE用于记录活动信息,FSM_CONNECTIONDATA则涉及用户连接状态的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FileZilla FTP服务器源代码分析04

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

 WM_FILEZILLA_SERVERMSG:
   
wParam代表大的分类, 即是何种消息, lParam是附加的信息, 具体根据wParam的不同而不同。
   
wParam有以下几种:
FSM_STATUSMESSAGE:
 记录当前活动, 并将活动信息在admin窗口上显示, 并且记录到log文件中(需要设置相应选项),打开admin窗口,上半部分显示的内容就是从里来的。
 lParam带的是t_statusmsg结构, 里面记录了当前活动的user, ip, time, message等
 如:
 (000001) 2006-7-23 16:03:56 - (not logged in) (127.0.0.1)> USER whg
 (000001) 2006-7-23 16:03:59 - (not logged in) (127.0.0.1)> 331 Password required for whg
 (000001) 2006-7-23 16:04:05 - (not logged in) (127.0.0.1)> PASS *
 (000001) 2006-7-23 16:04:11 - robert (127.0.0.1)> 230 Logged on
 
FSM_CONNECTIONDATA: 
 这是跟connection相关的消息,如新建了连接,用户登录成功,用户退出等等。信息发送到admin窗口,显示在admin窗口的下半部分,即ID、Account、IP等内容。
 lParam带的是t_connop结构, 结构中成员op代表更详细的connection分类,可能值有:
 USERCONTROL_CONNOP_ADD
  有新用户进行连接(还未登录)
 USERCONTROL_CONNOP_CHANGEUSER
  登录成功
 USERCONTROL_CONNOP_REMOVE
  用户退出,或者因为time被强行注销
 USERCONTROL_CONNOP_TRANSFERINIT
  传输开始或结束, 即与客户端有数据通讯,如开始传输数据,ls命令也会导致数据的传输。
 USERCONTROL_CONNOP_TRANSFEROFFSETS
  显示传输进度,如在进行文件传输的过程中,需要向admin窗口显示当前的传输字节数,传输速率等
  
 所有的这些信息都会在admin窗口的下半部分中显示。
 
FSM_THREADCANQUIT:
 系统退出时会发出这些消息,系统在处理这个消息时,会结束线程
 
FSM_SEND:
 系统只要发送了数据,都会发送这个消息,并且在admin窗口的状态条中显示当前用户用发送了多少数据
 
FSM_RECV:
 系统只要接收到数据,都会发送这个消息,并且在admin窗口的状态条中显示当前用户用收到了多少数据

 

可见,CServer处理的消息应该只是一些admin或者status消息,这些消息应该在线程listen, accep处理相应的ftp请求时发出。真正的FTP处理并不在这里。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值