Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2018, 06:26   #1
GerMilitaryLoli
 
Регистрация: 15.01.2018
Сообщений: 6
По умолчанию Создание клиент/серверного приложения - C++ Qt

Денечка, делал клиент-сервеное приложение по этом гайду
https://www.youtube.com/watch?v=M76LdqViDgU
Делалось все под Linux Manjaro, на Qt конечно же, но дело в том что при подключении к серверу, тот самый сервер не показывает обратной информации(Кроме того, что сервер слушает порты. В то же время, при нажатии кнопки подключения второй раз, он не подклчается, мол он уже подключен, но соответственных выводов нет). Но из-за нехватки опыта и смышлености, не могу найти где ошибка, может кто подскажет, уже весь код пересмотрел на правильность? Буду очень благодарен
Хэдер сервера
Цитата:
#ifndef MYSERVER_H
#define MYSERVER_H

#include <QTcpServer>
#include <QTcpSocket>

class myserver : public QTcpServer
{
Q_OBJECT
public:
myserver();
~myserver();
QTcpSocket* socket;
QByteArray Data;
public slots:
void startServer();
void incomingConnection(int socketDescriptor);
void sockReady();
void sockDisc();
};
#endif // MYSERVER_H
Исходник сервера
Цитата:
#include "myserver.h"
myserver::myserver(){}
myserver::~myserver(){}
void myserver::startServer()
{
if(this->listen(QHostAddress::Any, 9000))
{
qDebug()<<"Listen";
}
else
{
qDebug()<<"Not listen";
}
}
void myserver::incomingConnection(int socketDescriptor)
{
socket= new QTcpSocket(this);
socket->setSocketDescriptor(socketDescript or);
connect(socket,SIGNAL(readyRead()), this,SLOT(sockReady()));
connect(socket, SIGNAL(disconnected()),this,SLOT(so ckDisc()));

qDebug()<<socketDescriptor<<"User connect";

socket->write("You are connect");
qDebug()<<"Connect status - yes";
}
void myserver::sockReady()
{

}
void myserver::sockDisc()
{
qDebug()<<"Uset disconnect";
socket->deleteLater();
}
Хэдер клиента
Цитата:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTcpSocket>
#include <QMessageBox>
#include <QDebug>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

QTcpSocket* socket;
QByteArray Data;
public slots:
void sockReady();
void sockDisc();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
Исходник клиента
Цитата:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
socket = new QTcpSocket(this);
connect(socket, SIGNAL(readyRead()),this, SLOT(sockReady()));
connect(socket, SIGNAL(disconnected()),this,SLOT(so ckDisc()));
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow:n_pushButton_clicked()
{
socket->connectToHost("127.0.0.1", 9000);
}
void MainWindow::sockDisc()
{
socket->deleteLater();
}
void MainWindow::sockReady()
{
if(socket->waitForConnected(500))
{
socket->waitForReadyRead(500);
Data=socket->readAll();
qDebug()<<Data;
}
}
Прошу сильно тапками не бросаться ^^"
GerMilitaryLoli вне форума Ответить с цитированием
Старый 10.05.2018, 21:33   #2
Ksonix
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 12
По умолчанию

Цитата:
Сообщение от GerMilitaryLoli Посмотреть сообщение
if(this->listen(QHostAddress::Any, 9000))
Any поменять на localhoste
Ksonix вне форума Ответить с цитированием
Старый 25.05.2018, 20:47   #3
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Ksonix Посмотреть сообщение
Any поменять на localhoste
это тут при чем?


Цитата:
Сообщение от GerMilitaryLoli Посмотреть сообщение
тот самый сервер не показывает обратной информации
а какая информация тебе нужна? читай документацию, там много чего есть - и информация о подключениях, и о ошибках и еще много чего.

Цитата:
Сообщение от GerMilitaryLoli Посмотреть сообщение
В то же время, при нажатии кнопки подключения второй раз, он не подклчается, мол он уже подключен, но соответственных выводов нет
все правильно так и должно быть. а что и как ты хочешь выводить?

Вообще видео так себе, почитай Макс Шлее или тут кое что есть
http://qt-doc.ru/realizacia-servera-...tcpserver.html
http://qt-doc.ru/realizacia-klienta-...tcpsocket.html
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание клиент-серверного приложения(DataSnap) killercrush Помощь студентам 1 21.04.2013 10:53
Создание клиент-серверного приложения. Advice required. Last Свободное общение 1 13.02.2013 01:35
Создание клиент-серверного приложения. bedrock90 Фриланс 5 05.09.2012 16:13
сколько будет стоить создание клиент-серверного приложения на заказ? Maincore Свободное общение 10 27.04.2012 20:29
Разработка клиент-серверного приложения Sabber БД в Delphi 0 19.05.2010 12:25