telnet 客户端未连接 - 到 QTCPserver

Posted

技术标签:

【中文标题】telnet 客户端未连接 - 到 QTCPserver【英文标题】:telnet client not connecting -- to QTCPserver 【发布时间】:2013-12-04 08:47:33 【问题描述】:

为什么我无法使用 telnet 客户端连接到在我的本地主机上运行的服务器? 我正在使用 windows-7 并且在控制面板中打开了 telnet 客户端。

请建议如何使它工作?

#define SERVER_PORT 5000

tcp server 是在 tcpserver 对象中创建的:---

tcpserverobject::tcpserverobject(QObject *parent) :
    QObject(parent), tcpServer(0)

    tcpServer = new QTcpServer;

    connect(tcpServer, SIGNAL(newConnection()), this, SLOT(on_newConnection()));


// tcpserver 的公共槽 - 线程

void tcpserverobject::dowork()

    if (!tcpServer->listen(QHostAddress::LocalHost, SERVER_PORT )) 

        qDebug() << "\n returning from server listning error .. !!! ";

        return;
    

    qDebug() << "\n server listning";


    //while(1)
    while(!m_bQuit)
    
    


服务器新连接代码:---

void tcpserverobject::on_newConnection()

    QByteArray block;

    block.append(" \n Hello from server .. !!!") ;

    QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
    connect(clientConnection, SIGNAL(disconnected()),
                clientConnection, SLOT(deleteLater()));

    // Create new thread for this .. client request ..!!
    qDebug() << "\n New connection request ..!!!";
    qDebug() << "\n New client from:" << clientConnection->peerAddress().toString();

    clientConnection->write(block);
    clientConnection->flush();

    clientConnection->disconnectFromHost();
    qDebug() << "\n New connection request closed ..!!!";

现在我在 telnet 中输入命令:----

C:\Users\Admin> telnet

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet> open localhost 5000
Connecting To localhost...

我可以让我的服务器进入监听模式,因为打印了以下语句:--

qDebug() << "\n server listning";

但是为什么telnet客户端无法连接到在localhost & PORT = 5000 ?上运行的服务器

【问题讨论】:

【参考方案1】:

在函数做工作,你有这个代码:-

//while(1)
while(!m_bQuit)


这将停止当前线程处理消息。如果您希望能够停止服务器,请在 tcpserverobject 类中设置一个插槽,它会在收到信号时关闭与 QTcpServer 的连接。

【讨论】:

实际上这个 while 循环在一个启动服务器的线程的 dowork() 函数中......所以你的意思是说......如果我删除这个 while 循环......那么 telnet 客户端将能够连接到服务器..? ...我的主要问题是telnet客户端无法连接到服务器...?

以上是关于telnet 客户端未连接 - 到 QTCPserver的主要内容,如果未能解决你的问题,请参考以下文章

Python telnetlib 客户端似乎没有打开到服务器的 telnet 连接

重试时客户端连接未正确关闭

如何使用telnet测试端口号

如何通过 SSH 连接向 Telnet 发送命令

ssh远程连接centos7故障排除

nginx的反向代理可以直接telnet么