Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 26.10.2014
Сообщений: 74

Клиент (Qt) не соединяется с сервером на Си

27.01.2016, 15:49. Показов 1071. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Помогите, пожалуйста, разобраться с вопросом. Есть сервер, написанный на СИ и клиент, написанный на с++ Qt. Между ними нет связи. Когда запускаешь сервер, а потом клиент, то соединение со стороны клиента оканчивается ошибкой:
«“QAbstractSocket::ConnectionRefusedErro r “The connection was refused.”»
В конструктор клиента я передаю ip-адрес и порт компьютера, на который надо передать данные.
Клиент:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
#include <QtGui/QApplication>
#include "myclient.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyClient w ("192.168.0.130", 50088);
    w.show();
    return a.exec();
}
.h:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef MYCLIENT_H
#define MYCLIENT_H
 
#include <QtGui>
#include <QWidget>
#include <QTcpSocket>
#include <QHostAddress>
 
class MyClient : public QWidget
{
    Q_OBJECT
 
private:
    QTcpSocket* m_pTcpSocket;
    QTextEdit*  m_ptxtInfo;
    QLineEdit*  m_ptxtInput;
    quint16     m_nNextBlockSize;
 
 
public:
    MyClient(const QString& strHost, int nPort, QWidget* pwgt = 0);
    ~MyClient();
 
private slots:
    void slotReadyRead   (                            );
    void slotError       (QAbstractSocket::SocketError);
    void slotSendToServer(                            );
    void slotConnected   (                            );
};
 
#endif // MYCLIENT_H
Сервер (Си):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
 
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include <string.h>
#include <strings.h>
#include <inttypes.h>
#include <unistd.h>
 
struct sockaddr_in saddr, cliaddr;
 
int main()
{
    int sock, con, rbind;
    socklen_t clilen;
    int addrSize;
    char buf[1] = {0xa};
    char bufsize[10];
    int i = 0, n;
 
    if((sock = socket(AF_INET,SOCK_STREAM,0)) == -1)
    { 
        printf(stderr,"sock_client error\n");
        return 1;
    }
    printf(/*stderr,*/"Sock OK\n");
    
    saddr.sin_family = AF_INET;
    saddr.sin_port = htons(50088);
        saddr.sin_addr.s_addr = inet_addr("192.168.0.6"); //htonl(INADDR_ANY);
 
    bzero(&saddr,sizeof(saddr));
 
    if((rbind = bind(sock,&saddr,sizeof (saddr))) == -1)
        {
                   printf("error bind\n");
                   return 1;
        }
    listen(sock, 1);
    
    addrSize = sizeof(struct sockaddr_in);
    
    for(;;)
    {
        clilen = (socklen_t*)  sizeof(cliaddr);
//      con = accept(sock, (struct sockaddr*) &cliaddr, clilen);
        
        if((con = accept(sock,(struct sockaddr *)&cliaddr,(socklen_t *)&clilen)) == -1)
        printf("Error accept  %s\n");
        
        if( (n = recv(con, (void*) bufsize, sizeof(bufsize), 0) > 0) )
        {
        for(i=0; i < 10; i++)
        { 
            printf("bufsize  = %x\n", bufsize[i]);
            }
        }
        send(con, (void*) buf, sizeof(bufsize), 0);
        
        close(con);
    }
}
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2016, 15:49
Ответы с готовыми решениями:

Клиент не соединяется с сервером
Доброго времени суток! Не соединяется Клиент с базой. Проблема скорее всего в прослушивателе(Listener т.к. он не стартует не...

Клиент не соединяется с DHCP-сервером
Установил на debian пакет isc-dhcp-server. В файле /etc/dhcp/dhcpd.conf записано: subnet 192.168.7.0 netmask 255.255.255.0 { ...

Клиент не соединяется с сервером при запуске из Android Studio
Доброго времени суток, форумчане. Целые сутки убил на решение вопроса, ответа так и не нашел, решил создать собственную тему. Пытаюсь...

1
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
28.01.2016, 12:43
слушаем на одном адресе, а коннектимся к другому?! так не будет работать.
bind и listen локальные операции, касающиеся сетевых интерфейсов хоста, на котором они выполняются.
Поставьте у bind (192.168.0.6), если это адрес сервера.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2016, 12:43
Помогаю со студенческими работами здесь

DCOM-клиент в виде сервиса не соединяется с DCOM-сервером!?
DCOM-клиент написан как сервис (с окном). Если запускаешь как сервис на той же машине что и DCOM-сервер, все соединяется,работает. ...

Applet не соединяется с сервером...
Помогите решить проблему. Написал апплет, он используя сокеты соединяется с сервером и тянет данные. Но наткнулся на ситуацию, если...

Почему приложение не соединяется с сервером?
Я написал приложение, используя NetBeans 7.0.1, плагин nbandroid. Оно должно соединится с сервером и обработать результат. В приложении...

winsock. Как проверить соединяется ли Сокс с сервером?
Как проверить соединяется ли Сокс с сервером Какие команды вообще существуют при конекте к прокси серверу.... внешнему.. не SMTP

WeBSockets Клиент - Сервер Делфи не соединяется по Интернету
Здравствуйте! Помогите с проблемой. Пытаюсь разобраться с библиотекой WEBSockets, TidWEBHTTPClient и TidWEBServer, использую эти компоненты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru