Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284

Альтернативная программа. Клиент

08.10.2013, 16:21. Показов 1052. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Есть штатная программа, так я понимаю клиент, а есть в другом городе сервер.
Хочу сделать свою программу(клиент). Весь день сидел читал, читал...короче куда копать ? )))
Надо хотя бы пройти авторитизацию(как то отправить пароль и логин, и получить ответ мол я авторитизирован), а дальше сам буду думать, подгонять.
Скрин программы приведен. Есть еще у программы всякие файлы настройки(привел ниже), я думаю они тоже понадобятся для написание как я понимаю клиента или сокета клиента, короче пока сложно все воспринимать.

[Main]
ServerHost=90.188.116.11
ServerPort=5000
UserName=admin
Password=
Миниатюры
Альтернативная программа. Клиент  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.10.2013, 16:21
Ответы с готовыми решениями:

Простая программа клиент - клиент
Хочу написать простую программу для передачи (для начала) сообщений. Кто может что посоветовать? Сообщения должны передаваться...

Что такое программа-сервер, программа-клиент
Учусь заочно и надо контрольную сделать вкратце я и сам объясню, но надо хотя бы листов на 10 Помогите плиз. Уже весь инет облазил....

Альтернативная конфигурация
Доброго времени суток! Для чего эта вещь? Это когда не сработала оснавная конфигурация или 2 IP адреса сделать?

4
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.10.2013, 17:09  [ТС]
Пока сделал вот так, нашел клиент скомпилировал, вроде работает. Если иду верным путем то как теперь отправить логин и пароль и узнать принял их сервер или нет? Хотя бы в консольном варианте что нибудь получить.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "stdafx.h"
// Пример простого TCP-клиента
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
 #pragma comment (lib, "ws2_32.lib")
#define PORT 5000
#define SERVERADDR "90.188.116.11" //Звёздочками пометил свой IP
 
int _tmain(int argc, _TCHAR* argv[])
{
    char buff[1024];
    printf("TCP DEMO CLIENT\n");
 
    // Шаг 1 - инициализация библиотеки Winsock
    if (WSAStartup(0x202, (WSADATA *)&buff[0]))
    {
        printf("WSAStart error %d\n", WSAGetLastError());
        return -1;
    }
 
    // Шаг 2 - создание сокета
    SOCKET my_sock;
    my_sock = socket(AF_INET, SOCK_STREAM, 0);
    if (my_sock < 0)
    {
        printf("Socket() error %d\n", WSAGetLastError());
        return -1;
    }
 
    // Шаг 3 - установка соединения
    // заполнение структуры sockaddr_in - указание адреса и порта сервера
    sockaddr_in dest_addr;
    dest_addr.sin_family = AF_INET;
    dest_addr.sin_port = htons(PORT);
    HOSTENT *hst;
 
    // преобразование IP адреса из символьного в сетевой формат
    if (inet_addr(SERVERADDR) != INADDR_NONE)
        dest_addr.sin_addr.s_addr = inet_addr(SERVERADDR);
    else
    {
        // попытка получить IP адрес по доменному имени сервера
        if (hst = gethostbyname(SERVERADDR))
            // hst->h_addr_list содержит не массив адресов,
            // а массив указателей на адреса
            ((unsigned long *)&dest_addr.sin_addr)[0] =
            ((unsigned long **)hst->h_addr_list)[0][0];
        else
        {
            printf("Invalid address %s\n", SERVERADDR);
            closesocket(my_sock);
            WSACleanup();
            return -1;
        }
    }
 
    // адрес сервера получен - пытаемся установить соединение
    if (connect(my_sock, (sockaddr *)&dest_addr, sizeof(dest_addr)))
    {
        printf("Connect error %d\n", WSAGetLastError());
        return -1;
    }
 
    printf("Soedinenie s %s uspeshno ustanovlenno\n \
            Type quit for quit\n\n", SERVERADDR);
 
    // Шаг 4 - чтение и передача сообщений
    int nsize;
    while ((nsize = recv(my_sock, &buff[0], sizeof(buff) - 1, 0)) != SOCKET_ERROR)
    {
        // ставим завершающий ноль в конце строки
        buff[nsize] = 0;
 
        // выводим на экран
        printf("S=>C:%s", buff);
 
        // читаем пользовательский ввод с клавиатуры
        printf("S<=C:"); fgets(&buff[0], sizeof(buff) - 1, stdin);
 
        // проверка на "quit"
        if (!strcmp(&buff[0], "quit\n"))
        {
            // Корректный выход
            printf("Exit...");
            closesocket(my_sock);
            WSACleanup();
            return 0;
        }
 
        // передаем строку клиента серверу
        send(my_sock, &buff[0], strlen(&buff[0]), 0);
    }
    printf("Recv error %d\n", WSAGetLastError());
    closesocket(my_sock);
    WSACleanup();
    return -1;
}
0
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.10.2013, 17:21  [ТС]
И еще вот снял сниффером при обмене со штатной программой. (правда вход осуществлял с заведомо ложным паролем!)
И еще вопрос почему тут 4 строки ? я же всего лиш 1 раз нажал залогиниться, а сообщений всяких 4 вышло. И где тут запрос где ответ ? Я так понимаю где длинна 147 это и есть наша основная информация ?
Миниатюры
Альтернативная программа. Клиент  
0
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.10.2013, 17:42  [ТС]
А мой кусок кода шлет ваще все что захочет и очень много много.... как исправлять ?
Миниатюры
Альтернативная программа. Клиент  
0
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.10.2013, 19:30  [ТС]
Пробовал изменять пользователь и пароль, изменений данных в сниффере так и не увидел. Как так ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2013, 19:30
Помогаю со студенческими работами здесь

Альтернативная CMS
Всем привет! Приглашаю всех желающих поучаствовать в проекте &quot;AlterCMS&quot; ! Основная идея заключается в том, что бы: 1. минимизировать...

Альтернативная замена if
Альтернативная замена if Пробовала использовать switch, как-то не подходит using (StreamReader reader = new StreamReader(tr)) ...

Альтернативная 2D физика
Подскажите есть ли хоть какая нибудь альтернатива юнитовской 2д физике, я хотел создать игру по типу earn to die или climb hill racing,...

Альтернативная энергетика
В популярной форме описаны принципы преобразования солнечной энергии в теплоту, электричество и другие формы энергии. Описан принцип...

Альтернативная запись выражения
Как записать данное выражение использую только конъюнкцию,дизъюнкцию и отрицание? A\equiv (B\equiv C)


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru