QtTelnet

原创 2013年12月03日 02:18:10

       学习qttelnet-2.1_1-opensource。

1、  QSocketNotifier的使用

        QSocketNotifier在该类中使用的目的是用于:监听socket的exception。

        但:QTcpSocket and QUdpSocket provide notification through signals, so there is normally no need to use a QSocketNotifier on them.

         也就是说:QTcpSocket已经提供有readyRead()、error()的signal函数来监听是否可以读数据、是否有Exception;且该类中只使用了QTcpSocket来实现Telnet。

         因此,QtTelnet类中对QSocketNotifier的操作是多余的?

2、  Close

         1)QtTelnet::close()可以通过调用QtTelnetPrivate::socketConnectionClosed来实现,以增加code reuse。

         2)loggedOut可能被emit两次。

       该类中,在外部调用QtTelnet::close()时,loggedOut()信号会被emit两次。因为在QtTelnet::close()会调用“d->socket->close();”------关闭socket------触发QtTelnetPrivate::socketConnectionClosed------emit loggedOut(),而QtTelnet::close()也会emit  loggedOut()。

         可以将QtTelnet::close()中的emit  loggedOut()删除掉,以解决该问题?

3、  QtTelnet类和QtTelnetPrivate之间的关系

        类QtTelnetPrivate里含有指向QtTelnet的指针;类QtTelnet里又含有指向QtTelnetPrivate的指针。为什么会这样定义?

         QtTelnetPrivate名字中“private”的含义可能就在于QtTelnetPrivate是QtTelnet私有的,即只能由QtTelnet使用。此处实现的关键在于:QtTelnet构造函数中对指向QtTelnetPrivate类的指针的初始化。以下是QtTelnet的构造函数:

QtTelnet::QtTelnet(QObject *parent)
    : QObject(parent), d(new QtTelnetPrivate(this))
{
}

4、  QtTelnet的signal函数message()

         该函数再QtTelnet的成员函数里并没有用到,而是在QtTelnetPrivate::parsePlaintext()里被emit,那为什么不直接把message()定义在QtTelnetPrivate类里?

        经试验,不可以。

         因为developer只能使用QtTelnet而不能使用QtTelnetPrivate,QtTelnet是由QtTelnetPrivate composition成的,developer的connect()只能使用QtTelnet里的函数。



 

简单的telnet(带详解)

#include #include #include #include #include #include #include #include #include #include #include #...
  • lxb316
  • lxb316
  • 2010年03月02日 10:38
  • 2624

telnet 简单客户端学习

#include #include #include #include #include #include #include #include #include #include ...
  • newnewman80
  • newnewman80
  • 2012年09月07日 10:33
  • 5429

qttelnet-2.1_1

  • 2012年10月20日 19:53
  • 78KB
  • 下载

Socket实现telnet交互通信

using System; usingSystem.Collections.Generic; using System.Text; using System.Net; usingSystem....
  • China_Paul
  • China_Paul
  • 2016年11月13日 16:12
  • 2883

Qt 5 帮助文档的使用

Qt 5 帮助文档的使用   Qt 5 帮助文档的使用学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能...
  • LZH2912
  • LZH2912
  • 2016年10月07日 17:13
  • 3733

QtTelnet

学习qttelnet-2.1_1-opensource。 1、  QSocketNotifier的使用 QSocketNotifier在该类中使用的目的是用于:监听socket的exception。 ...
  • bigsnowstorm
  • bigsnowstorm
  • 2013年12月03日 02:18
  • 2294

node.js服务端和QT客户端简单Socket通讯

node.js服务端和QT客户端进行简单的Socket通讯
  • yy64578537
  • yy64578537
  • 2017年04月09日 15:27
  • 403

Socket数据通信

Socket 原意:插座 ; 现意:套接字 Port 端口 TCP (Transmission Control Protocol )传输控制协议 UDP (User Data Protocol) ...
  • qq_28877125
  • qq_28877125
  • 2016年10月28日 18:36
  • 248

Qt TCP协议 传输简单字符串实例

转载自http://mobile.51cto.com/symbian-270781_all.htm Qt TCP协议 传输简单字符串实例是本文要介绍的内容。TCP即Transmission Co...
  • sinat_34550830
  • sinat_34550830
  • 2016年08月22日 10:06
  • 2990

Socket客户端,服务器通信demo

socket.h #ifndef SOCKET_H #define SOCKET_H #include #include string> enum TypeSocket {Block...
  • u013898698
  • u013898698
  • 2017年02月02日 14:58
  • 428
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QtTelnet
举报原因:
原因补充:

(最多只允许输入30个字)