FTP文件管理项目 项目日报(五)

4 篇文章 0 订阅

FTP文件管理项目 项目日报(五)

发包处理

// 发包基类
#define MAX_PACKET_LENTH 1024
class PacketBase
{
protected:
    int m_Size;
    packet_header_t Head;
    packet_tali_t Tail;
    char* Body;
    char m_Data[MAX_PACKET_LENTH];

public:
    PacketBase();
    ~PacketBase();
    bool pack();
    bool unpack();
    char* getBody();
    packet_header_t* getHead();
    packet_tali_t* getTail();
    char* getData();
    int getSize();
    void setSize(int size);
    PacketBase& operator =(const PacketBase& packet);
};
//发包类
class SendPack : public PacketBase
{
public:
    SendPack();
    bool send_loginpack(int id,int pwd);
private:
  
};
bool SendPack::send_loginpack(int id, int pwd)
{
        int sz=sizeof(Login_t);
        this->setSize(sz);
        this->Body=new char[sz];

       Head.funcId=0x01;
       Head.optid=0x00;
       Head.syn=0x04;//判断包头
       //填充包体
       Login_t *body = (Login_t*)Body;
       //body=malloc(sizeof(id)+sizeof(pwd));
       body->id=id;
       body->pwd=pwd;

       Tail.pack_tail=0x05;


       return this->pack();
}
//封装socket类
class MyTcpSocket
{
public:
    static MyTcpSocket *getMySocket();
    QTcpSocket *client;
    ~MyTcpSocket(){p=NULL; isCon=false;}
private:
    MyTcpSocket();
    static MyTcpSocket *p;
    static bool isCon;
};
//实现socket类
MyTcpSocket *MyTcpSocket::p = NULL;
bool MyTcpSocket::isCon = false;

MyTcpSocket::MyTcpSocket()
{
    if(!isCon)
    {
        client = new QTcpSocket;
        client->abort();
        //client->connectToHost(NULL,NULL);
        isCon = true;
    }
}
MyTcpSocket * MyTcpSocket::getMySocket()
{
    if(NULL == p)
        p = new MyTcpSocket();

    return p;
}
var foo = 'bar';

复习的QT知识

过滤器的使用,需要使用的控件安装过滤器事件,会优先执行过滤器事件
installEventFilter安装过滤器事件,bool eventFilter(QObject *listen, QEvent *event);实现过滤器事件,用于排除一些事件的干扰,当然要忽视某事件导致控件失效问题可以采取event->ignore()去忽视该事件,从而实现控件的执行

遇到问题

1.QQ的下拉框处理没有解决,没发实现下拉滑动的删除
2.接下来的话,由于一些特殊原因,可能会导致项目停止,心情颇为复杂

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值