0
텔넷 클라이언트를 사용하여 로컬 호스트에서 실행중인 서버에 연결할 수없는 이유는 무엇입니까?
windows-7을 사용하고 있습니다. & 제어판에서 텔넷 클라이언트가 켜져 있습니다.텔넷 클라이언트가 연결되지 않음 - QTCPserver에
어떻게 작동시키는 지 제안 하시겠습니까?
#define SERVER_PORT 5000
TCP 서버는 tcpserver는 객체 생성됩니다 --- tcpserver를위한
tcpserverobject::tcpserverobject(QObject *parent) :
QObject(parent), tcpServer(0)
{
tcpServer = new QTcpServer;
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(on_newConnection()));
}
// 공통 슬롯 - 스레드
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 ..!!!";
}
이제 c ommand 텔넷에서 : 문을 다음하는 것은 인쇄로 ----
내 서버에 갈 수 있도록 할 수 있어요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";
그러나 텔넷 클라이언트는 할 수없는 이유 기능에 ?
실제로이 while 루프는 서버를 시작하는 스레드의 dowork() 함수 내에 있습니다. 그래서 말하자면 ...이 루프를 제거하면 .. 텔넷 클라이언트가 연결할 수 있습니다. 서버 ..? ... 내 주요 문제는 텔넷 클라이언트가 서버에 연결할 수 없다는 것입니다 ...? – Katoch
이 시점에서 제안 하시겠습니까 ...? – Katoch
작업 중 ... 루프를 제거했습니다. – Katoch