libcolutius
Server.h
浏览该文件的文档.
1
11#pragma once
12#include "Channel.h"
13#include "Message.h"
14#include "Session.h"
15#include "User.h"
16#include <QDebug>
17#include <QHostInfo>
18#include <QObject>
19#include <QSslSocket>
20#include <QTcpSocket>
25class Server : public QObject
26{
27 Q_OBJECT
28 signals:
29 void loginSuccess(Server *server);
30 void loginFail();
31 void disconnected();
32 void networkError();
33 void networkOk();
35 void addSessionCallBack(QString name);
36 public:
40 enum Status
41 {
44 };
48 enum Type
49 {
52 };
53 explicit Server(Type type = Tcp, QString host = "", int port = 0, QString nick = "", QString user = "",
54 QString passwd = "", QObject *parent = nullptr);
55 ~Server() override;
56 void login(); //连接并登录服务器
57 void disconnect(); //断开连接
58 void setHost(QString host); //设置服务器地址
59 void setPort(int port); //设置端口
60 void setNick(QString nick); //设置昵称
61 void setUser(QString user); //设置用户名
62 void setPasswd(QString passwd); //设置密码
63 QString getNick(); //获取昵称
64 QString getHost(); //获取服务器地址
65 void receiveData(); //接收数据
66 void addSession(const QString &name); //添加会话
67 QList<Message *> getMessageList(); //获取消息列表
68 Message *getMessage(int index); //获取消息实例
69 Session *getSession(int index); //获取会话实例
70 Session *getSession(QString name); //获取会话实例
71 QList<Session *> getSessionList(); //获取会话列表
72 int getMessageNum(); //获取消息数目
73 int getSessionNum(); //获取会话数目
74 void sendMsg(Message *message); //向指定会话发送消息
75 private slots:
76 void _checkNetWork(const QHostInfo &host); //检查网络连接情况
77 void _addSessionCallBack(QString name); //添加会话回调
78 void _deleteSession(QString name);
79
80 private:
81 void _sendData(const QString &data); //向服务器发送数据
82 void _initConnect(); //初始化信号槽
83 void _connect(); //连接到服务器
84 void _login(); //登录到服务器
85 QList<Session *> _sessionList; //会话列表
86 QList<Message *> _messageList; //服务器消息列表
87 QString _host; //服务器地址
88 int _port = 0; //服务器端口号
89 QString _nick; //昵称
90 QString _user; //用户名
91 QString _passwd = ""; //密码
92 QAbstractSocket *_socket;
93 Status _status; //服务器状态
94 Type _type; //服务器连接类型
95};
IRC频道类头文件
IRC消息类头文件
IRC会话类头文件
IRC用户类头文件
IRC消息类 将原始数据传入其中,由该类对接收到的消息进行解析、分类、格式化
Definition: Message.h:22
IRC服务器类
Definition: Server.h:26
int getMessageNum()
获取服务器消息数目
Definition: Server.cpp:339
void addSessionCallBack(QString name)
内部信号
void setPasswd(QString passwd)
设置密码
Definition: Server.cpp:163
void networkOk()
网络已连接
void setPort(int port)
设置端口号
Definition: Server.cpp:139
Session * getSession(int index)
根据索引获取会话实例
Definition: Server.cpp:401
void setUser(QString user)
设置用户名
Definition: Server.cpp:155
void addSession(const QString &name)
添加会话,加入成功后发射addSessionSucess信号
Definition: Server.cpp:292
void disconnected()
服务器断开连接
Type
Definition: Server.h:49
@ Tcp
TCP Socket
Definition: Server.h:50
@ Ssl
SSL Socket
Definition: Server.h:51
QList< Session * > getSessionList()
获取服务器会话列表
Definition: Server.cpp:331
Status
服务器当前状态
Definition: Server.h:41
@ Connected
服务器已连接
Definition: Server.h:42
@ Disconnected
服务器断开连接
Definition: Server.h:43
QString getHost()
获取服务器地址
Definition: Server.cpp:284
QList< Message * > getMessageList()
获取服务器消息列表
Definition: Server.cpp:323
void receiveData()
接收数据
Definition: Server.cpp:170
void setHost(QString host)
设置服务器地址
Definition: Server.cpp:131
Message * getMessage(int index)
根据索引获取消息实例
Definition: Server.cpp:387
void sendMsg(Message *message)
发送消息,传入的Message实例一定要手动设置session
Definition: Server.cpp:356
void setNick(QString nick)
设置昵称
Definition: Server.cpp:147
void networkError()
网络未连接
void loginSuccess(Server *server)
服务器连接成功
int getSessionNum()
获取服务器会话数目
Definition: Server.cpp:347
void disconnect()
断开服务器连接
Definition: Server.cpp:264
void loginFail()
服务器连接失败
Server(Type type=Tcp, QString host="", int port=0, QString nick="", QString user="", QString passwd="", QObject *parent=nullptr)
有参构造,
Definition: Server.cpp:23
void login()
连接到服务器并向服务器发送登录信息,如果登录成功,则发射loginSuccess信号
Definition: Server.cpp:65
QString getNick()
获取昵称
Definition: Server.cpp:276
void addSessionSucess()
会话加入成功
~Server() override
默认析构函数
Definition: Server.cpp:44
IRC会话类
Definition: Session.h:19