main.cpp
CODE
#include <QApplication>
#include <QtCore>
#include <stdlib.h>
#include "server.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Server();
return a.exec();
}
Server.cpp
CODE
#include <QtNetwork>
#include <QTcpSocket>
#include <stdlib.h>
#include <stdio.h>
#include "server.h"
Server::Server()
{
tcpServer = new QTcpServer();
if (!tcpServer->listen(QHostAddress::LocalHost,5423)) {
printf("Server isn't works fine( \n");
}
else {
printf("Server works fine) \n");
}
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newuser()));
}
//! [4]
void Server::newuser()
{
QTcpSocket * Clientsocket=tcpServer->nextPendingConnection();
connect(Clientsocket,SIGNAL(disconnected()),Clientsocket,SLOT(deleteLater()));
Clientsocket->write("Hi");
printf("New user \n");
}
#include <QTcpSocket>
#include <stdlib.h>
#include <stdio.h>
#include "server.h"
Server::Server()
{
tcpServer = new QTcpServer();
if (!tcpServer->listen(QHostAddress::LocalHost,5423)) {
printf("Server isn't works fine( \n");
}
else {
printf("Server works fine) \n");
}
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newuser()));
}
//! [4]
void Server::newuser()
{
QTcpSocket * Clientsocket=tcpServer->nextPendingConnection();
connect(Clientsocket,SIGNAL(disconnected()),Clientsocket,SLOT(deleteLater()));
Clientsocket->write("Hi");
printf("New user \n");
}
и Server.h
CODE
#ifndef SERVER_H
#define SERVER_H
#include <QTcpServer>
class Server: public QObject
{
Q_OBJECT
private slots:
void newuser();
public:
Server();
private:
QTcpServer *tcpServer;
};
#endif
#define SERVER_H
#include <QTcpServer>
class Server: public QObject
{
Q_OBJECT
private slots:
void newuser();
public:
Server();
private:
QTcpServer *tcpServer;
};
#endif
Также имеется клиент на PHP который конектится к сокету и читает из него.
Тестировал клиент двумя способами первый без чтения, второй с чтением.
Через дебаг запускаю сервер.
Ошибок\предупреждений не получаю
дальше подключал клиент без чтения сокета. Клиент удачно подключился (ошибок нет)
Но на сервере не выполняется всё равно функция newuser() которая должна вывести в консоль сообщение о новом пользователе.
Соотвественное если запустить клиент с чтением из сокета, то есстественно он подвисает.
Не могу понять в чём моя косяк