Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и сети
Войти
Регистрация
Восстановить пароль
 
uskortsev13
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 4
#1

Клиент серверное приложение для удаленного управления - C++

10.06.2015, 12:31. Просмотров 1048. Ответов 7
Метки нет (Все метки)

Нужна помощь в написании клиент серверной программы для удаленного управления на С++ (через командную строку).
Должен быть очень простой функционал: выкл.комп, перезагрузка, завершения сеанса пользователя, отк.,закрыт. сд-рома.
http://www.cyberforum.ru/cpp-networks/thread1966955.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2015, 12:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Клиент серверное приложение для удаленного управления (C++):

Клиент-серверное приложение C++
Необходимо реализовать клиент-серверное приложение, которое будет передавать...

Клиент-серверное приложение
Здравствуйте Помогите пожалуйста с первым клиент серверным приложением. Не...

Клиент-серверное приложение
Использую простой найденный сервер. Там есть строка принимающая данные:...

клиент-серверное приложение
Привет всем) Помогите пожалуйста... мне интересны клиент-серверные...

Клиент-серверное приложение
Пишу упрощенный чатик. Возникла проблема с клиентской частью приложения. ...

7
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
11.06.2015, 17:00 #2
как-то так - выход из сеанса и хлопанье сиди сами найдете
клиент
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
//------------------------------------------------------------------------------
#include <winsock>
#include <stdio.h>
#include <string>
#include <iostream>
//------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    //используйте для запуска имя_программы IP_адрес порт
 
    WSADATA wsa_data;
    if (WSAStartup(0x101, &wsa_data) || wsa_data.wVersion != 0x101) return -1;
 
    SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (s == INVALID_SOCKET) return -1;
 
    SOCKADDR_IN sa;
    sa.sin_family = AF_INET;
    sa.sin_port = htons(atoi(argv[2]));
    sa.sin_addr.S_un.S_addr = inet_addr(argv[1]);
 
    std::string message;
    printf("message=");
    getline(std::cin, message);
    if
    (
        sendto
        (
            s,
            message.c_str(), message.length() + 1,
            0,
            (SOCKADDR *)&sa, sizeof(sa)
        ) == SOCKET_ERROR
    )
        return -1;
 
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
    return 0;
}
сервер
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
//------------------------------------------------------------------------------
#include <winsock>
#include <stdio.h>
//------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    //используйте для запуска имя_программы IP_адрес порт
 
    WSADATA wsa_data;
    if (WSAStartup(0x101, &wsa_data) || wsa_data.wVersion != 0x101) return -1;
 
    SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (s == INVALID_SOCKET) return -1;
 
    SOCKADDR_IN sa;
    sa.sin_family = AF_INET;
    sa.sin_port = htons(atoi(argv[2]));
    sa.sin_addr.S_un.S_addr = inet_addr(argv[1]);
 
    if (bind(s, (SOCKADDR *)&sa, sizeof(sa)) == SOCKET_ERROR) return -1;
 
    SOCKADDR_IN nsa;
    int sizeof_nsa = sizeof(nsa);
 
    char buffer[1024];
    int buffer_size = sizeof(buffer);
    if
    (
        recvfrom(s, buffer, buffer_size, 0, (SOCKADDR *)&nsa, &sizeof_nsa) ==
            SOCKET_ERROR
    )
        return -1;
    printf("message=%s\n", buffer);
 
    if (!strcmp(buffer, "shutdown"))
    {
        ShellExecute(0, 0, "cmd", "/c shutdown /s /t 0", 0, SW_HIDE);
    }
    else if (!strcmp(buffer, "reset"))
    {
        ShellExecute(0, 0, "cmd", "/c shutdown /r /t 0", 0, SW_HIDE);
    }
 
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
    return 0;
}
1
uskortsev13
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 4
15.06.2015, 12:26  [ТС] #3
#include <winsock> ошибка была, исправил на #include <winsock2.h>
Не компилит ругается на :
C++
1
2
ShellExecute(0, 0, "cmd", "/c shutdown /s /t 0", 0, SW_HIDE);
ShellExecute(0, 0, "cmd", "/c shutdown /r /t 0", 0, SW_HIDE);
и подскажите как лучше реализовать что бы вышло с граф оболочкой (окно ввода IP, porta и после входа на удален комп. введение команд, либо нажатием соответственной кнопки для выполнения команды )
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
15.06.2015, 14:32 #4
Цитата Сообщение от uskortsev13 Посмотреть сообщение
ругается на
у меня не ругается. видимо дело в особенностях включения файлов в вашей среде. строка
C++
1
#include <Shellapi.h>
должна помочь
Цитата Сообщение от uskortsev13 Посмотреть сообщение
с граф оболочкой
все зависит от вашей среды: разные среды - разный подход к GUI
1
uskortsev13
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 4
15.06.2015, 17:07  [ТС] #5
c этой проблемой:
C++
1
2
ShellExecute(0, 0, "cmd", "/c shutdown /s /t 0", 0, SW_HIDE);
ShellExecute(0, 0, "cmd", "/c shutdown /r /t 0", 0, SW_HIDE);
строка помогла, файлы компилятся по отдельности, запускаю на выполнение и понеслась

Ошибка 1 error LNK2005: _main уже определен в client.obj C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\server.obj test1_KF
Ошибка 2 error LNK2001: неразрешенный внешний символ "__imp__closesocket@4" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 3 error LNK2001: неразрешенный внешний символ "__imp__socket@12" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 4 error LNK2001: неразрешенный внешний символ "__imp__WSACleanup@0" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 5 error LNK2001: неразрешенный внешний символ "__imp__sendto@24" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 6 error LNK2001: неразрешенный внешний символ "__imp__htons@4" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 7 error LNK2001: неразрешенный внешний символ "__imp__inet_addr@4" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 8 error LNK2001: неразрешенный внешний символ "__imp__WSAStartup@8" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\client.obj test1_KF
Ошибка 9 error LNK2001: неразрешенный внешний символ "__imp__bind@12" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\server.obj test1_KF
Ошибка 10 error LNK2001: неразрешенный внешний символ "__imp__recvfrom@24" C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\test1_KF\server.obj test1_KF
Ошибка 11 error LNK1120: неразрешенных внешних элементов: 9 C:\Users\UskortseV\Documents\Visual Studio 2012\Projects\test1_KF\Release\test1_KF.exe test1_KF

Гуглил, говорят ошибка подключения библиотек, а именно в свойствах проекта, компоновщика. Нашел, добавил их в проект и все равно те же ошибки.
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
16.06.2015, 09:17 #6
Цитата Сообщение от uskortsev13 Посмотреть сообщение
Нашел, добавил их в проект и все равно те же ошибки.
нет. судя по всему вы их не добавили. добавлять нужно в свойствах проекта, в нужной вам конфигурации (или во всех), в ветке линкер, в разделе инпут, в параметре адишнл депендс - добавлять строчку ws2_32.lib
1
uskortsev13
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 4
16.06.2015, 16:22  [ТС] #7
Добивал, скомпилировал, пробую запускать Екзешник через cmd, пишет ехе не найден, хотя лежит в проекте
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
17.06.2015, 13:36 #8
Лучший ответ Сообщение было отмечено uskortsev13 как решение

Решение

Цитата Сообщение от uskortsev13 Посмотреть сообщение
пробую запускать Екзешник через cmd, пишет ехе не найден, хотя лежит в проекте
если вы просто запускаете cmd и вбиваете туда имя ехе то результат будет только если путь к папке с вашим ехе прописан в переменных системы или вы уже находитесь в этой папке (слева от символа > вы видите имя папки в которой лежит ехе). запустите его просто так - там в конце работы стоит пауза - окно не исчезнет
1
17.06.2015, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2015, 13:36
Привет! Вот еще темы с решениями:

Клиент-серверное приложение на C++
Здравствуйте. Хочу заняться разработкой клиент-серверного приложения на C++....

Клиент-серверное приложение (curl)
Здравствуйте! Пытаюсь написать клиент-серверное приложение с использование...

Клиент-серверное приложение на сокетах
Здравствуйте! Захотел потренироваться и написать клиент-серверное приложение....

Клиент-серверное сетевое приложение через среду передачи данных стека TCP/IP
Создать клиент/серверное сетевое приложение для обмена широковещательными...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru