Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как отправить POST запрос на сервер без обработки ответа? Здравствуйте! Никак не могу найти простой способ отправить POST запрос на сервер, обрабатывать ответ не нужно. Пример запроса: http://site.com/test.php?text=blablabla Пытался подключить curl, но библиотеке всё время не хватало других файлов. Зарание спасибо! https://www.cyberforum.ru/ cpp-networks/ thread1694230.html C++ Передача структуры через сокет
Привет всем. Подскажите пожалуйста, где я мок на косячить. Потому что я уже бомбить начинаю... клиент#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <stdio.h> #include <iostream> using namespace std; typedef struct
C++ Объединение Tcp пакетов по сессии в файл https://www.cyberforum.ru/ cpp-networks/ thread1693181.html
Я использую библиотеку libpcap для снифа пакетов. Подскажите как лучше организовать архитектуру приложения, чтобы собрать tcp пакеты каждой сессии в один файл. Имеется ввиду реализация протокола http, грубо говоря. То есть слушаем интерфейс, приходят пакеты. Выбираем из них те которые привязаны к конкретному соединению и собираем в файл. Допустим был гет запрос на выдачу файла hello-world. Он был...
C++ Curl, авторизация, токен Только начинаю изучать CUrl При авторизации на сайте нужно помимо ввода логина и пароля ввести токен, как его можно достать и можно ли вообще(если есть на примете хороший гайдик по curl буду премного благодарен) Текущий код #include <stdio.h> #include <stdlib.h> #include <string> #include <iostream> https://www.cyberforum.ru/ cpp-networks/ thread1692962.html
Отправка письма C++
Привет! Смотрел на форуме и в гугле, что емейл можно отправить с помощью си++ , но весь код который там был не очень понятный и, почему то, у всех людей всегда разный. Где можно посмотреть информацию про отправку письма с помощью си++, что бы на русском и все было более менее понятно. а то я вообще ничего не знаю об том ка си++ может работать с сетями.Где такую информацию про отправку письма с...
C++ Chat_Server. Ошибка 0xC0000005: нарушение прав доступа при чтении ребят помогите пишу серверную часть чата по сети на C++ Выдает ошибку: Необработанное исключение по адресу 0x000B13CA в Chat_Server.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x0000000C. ругается на эту строчку кода: Listen = socket(result->ai_family,result->ai_socktype,result->ai_protocol); Listen =... https://www.cyberforum.ru/ cpp-networks/ thread1692150.html
C++ WinSocket теряет данные при приёме Не могу понять причину поведение при приёме данных. Страница скачивается, но практически каждый раз не до конца. Если выставить огромный буфер для приёма (чтобы сразу вся страница влезла), то ничего не теряется. Уже голову себе сломал в чём может быть проблема #define MAX_PACKET_SIZE 8192 bool initSock(); bool initLink(char *adress, HWND hWnd); WSADATA ws; https://www.cyberforum.ru/ cpp-networks/ thread1691366.html C++ Av_read_frame и avformat_open_input для аудио по сети (FFMPEG)
Тема про использование библиотеки ffmpeg. Хочу, например, с одного компьютера (с IP = ip1 и port = port1) транслировать аудио поток на другой (с IP = ip2 и port = port2). Сначала компьютер1 передает обычным путем SDP информацию. Далее, второй компьютер на основании этого SDP делает avformat_open_input, avformat_find_stream_info, avcodec_find_decoder и тд. Затем, у меня в цикле он получает...
C++ BOOST:ASIO и hayes-модем Здравствуйте, не подскажете рабочий пример использования библиотеки boost: asio c hayes-модемом. https://www.cyberforum.ru/ cpp-networks/ thread1690744.html C++ Как организовать обменн данными по сети между двух приложений? Привет. Хочу создать 2 приложения, которые бы взаимодействовали через интернет и могли обмениваться данными. Смотрю tcp/ip, но не все примеры в основном для домашней сети с одним роутером, а как организовать взаимодействие по тырнетам ничего нет. Куда копать? Можно со ссылками. https://www.cyberforum.ru/ cpp-networks/ thread1686272.html
Алгоритм сервера на сокетах C++
Помогите пожалуйста, только начал копаться в socket`aх. Уже создал простой "эхо" сервер и клиент к нему. А хотелось бы сделать что-то на подобии чата. Не понимаю сам алгоритм. Допустим у "эхо" сервера алгоритм такой: Инициализирует всё, слушает порт, ожидает подключения клиента, при подключении создаёт для него поток в котором при получении сообщения отправляет его обратно. Как добавить общение...
C++ Выбор конфигурации для клиентов (приложений) https://www.cyberforum.ru/ cpp-networks/ thread1682885.html
Поставил для себя видимо неординарную цель (из-за не чёткого понимания, того что имеется уже на данный момент) - выбрать серверную конфигурацию для приложения (WinAPI). Для каких целей нужно использовать это серверное приложение? Для работы многочисленных клиентов у пользователей (клиентские программы на Винде). Клиенты являются мессенджерами (аналог Скайпа). Что т
0 / 0 / 2
Регистрация: 04.04.2015
Сообщений: 7
28.03.2016, 18:14  [ТС] 0

Клиент-Сервер: передача байтов - C++ - Ответ 8945839

28.03.2016, 18:14. Показов 942. Ответов 2
Метки (Все метки)

Ответ

Всмысле, чтоб могло пересылать, например, по 8 байтов.
Пробую изменить приложения, но пока не особо получается.

Клиент:
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
#define _WINSOCK_DEPRECATED_NO_WARNINGS 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#pragma comment(lib, "Ws2_32.lib")
#include <windows.h>
#include <iostream>
using namespace std;
 
void main()
 
{
 
    WORD wVersionRequested;
    WSADATA wsaData;
    SOCKET s;
    sockaddr_in addr;
    char b[200];
    int err, size;
    SetConsoleCP(1251); // локализация ввода
    SetConsoleOutputCP(1251); // локализация вывода
    wVersionRequested = MAKEWORD(2, 2); // максимальный номер версии
    err = WSAStartup(wVersionRequested, &wsaData); // инициализация WinSock DLL
    if (err != 0) return; // если ошибка - завершение работы
    s = socket(AF_INET, SOCK_DGRAM, 0); // создание сокета, протокол UDP
    addr.sin_family = AF_INET; // тип адреса
    addr.sin_port = htons(1024); // номер порта
    addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // IP-адрес сервера
    cout << "Введите строку" << endl;
    cin.getline(b, sizeof(b), '\n'); // ввод слова
    size = sizeof(addr);
    for (int k = 0; k<strlen(b); k++) {
        cout<<b[k]<<endl;
        char tmp[2];
        tmp[0] = b[k];
        tmp[1] = b[k+1];
        tmp[2] = b[k+2];
        //  tmp[3]=b[k+3];
        //tmp[4]=b[k+4];
        //tmp[5]=b[k+5];
        //tmp[6]=b[k+6];
        //tmp[7]=b[k+7];
        //tmp[8]='\0';
    
        sendto(s, tmp, strlen(tmp), 0, (sockaddr*)&addr, size); // отправка слова серверу
}
    if (recvfrom(s, b, sizeof(b), 0, (sockaddr*)&addr, &size) != 0) // получение ответа
        cout << b << endl; // вывод результата
    closesocket(s); // закрытие сокета
    WSACleanup(); // завершение работы с WinSock API
}
Сервер:
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
#define _WINSOCK_DEPRECATED_NO_WARNINGS 
#define _CRT_SECURE_NO_WARNINGS
#include <iostream> // потоки ввода-вывода
#include <winsock2.h> // работа с сокетами
using namespace std;
#pragma comment(lib, "Ws2_32.lib")
 
bool is_vowel(char ch) // проверка, является ли символ гласным
{
    int i, l;
    char vowels[] = "AаЕеЁёИиОоУуЫыЭэЮюЯя"; // массив гласных
    l = strlen(vowels);
    for (i = 0; i < l; i++) // перебор массива
    {
        if (ch == vowels[i]) break;
    } // проверка символа
    return (i != l);
}
 
void main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    SOCKET s;
    sockaddr_in addr;
    int err, size;
    char b1[2], b2[100];
    b2[0] = '\0'; b2[1] = '\0'; b2[2] = '\0';
    //b2[3]='\0'; b2[4]='\0'; b2[5]='\0';
    //b2[6]='\0'; b2[7]='\0'; b2[8]='\0'; 
    int i, k, n, v1, v2, s1, s2;
    int j = 0;
    wVersionRequested = MAKEWORD(2, 2); // максимальный номер версии
    err = WSAStartup(wVersionRequested, &wsaData); // инициализация WinSock DLL
    if (err != 0) return; // если ошибка - завершение работы
    addr.sin_family = AF_INET; // тип адреса
    addr.sin_port = htons(1024); // номер порта
    addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // IP-адрес сервера
    s = socket(AF_INET, SOCK_DGRAM, 0); // создание сокета потока, протокол UDP
    bind(s, (sockaddr*)&addr, sizeof(addr)); // связывание сокета с локальным адресом
    //while (true) // вечный цикл обработки
    //{
    size = sizeof(addr);
 
    recvfrom(s, b1, sizeof(b1), 0, (sockaddr*)&addr, &size); // приём строки
    for (int m = 0; m<sizeof(b1) - 1; m++) {
        b2[j] = b1[m];
        j++;
        b2[j] = '\0';
    }
    n = strlen(b1); // длина принятой строки
    for (v1 = 0; v1 < n; v1++)
    {
        if (is_vowel(b1[v1])) break;
    } // ищем первую гласную
    if (v1 == n) strcpy(b2, b1); // нет гласных - копируем слово целиком
    else // есть гласные - разбиваем на слоги
    {
        k = s1 = s2 = 0;
        while (s1 < n) // пока не достигнут конец слова
        {
            for (v2 = (v1 + 1); v2 < n; v2++)
            {
                if (is_vowel(b1[v2])) break;
            } // ищем следующую гласную
            if (v2 == n) s2 = n; // не осталось гласных - последний слог
            else
            {
                if ((v2 - v1) > 2) s2 = v1 + 1; // 2 согласных, закрытый слог
                else s2 = v1; // открытый слог
            }
            for (i = s1; i <= s2; i++) b2[k++] = b1[i]; // копируем текущий слог
            if (s2 != n) b2[k++] = '-'; // если не конец слова - добавляем дефис
            s1 = s2 + 1; v1 = v2; // переход к следующему слогу
        }
    }
    sendto(s, b2, sizeof(b2), 0, (sockaddr*)&addr, size); // отправка ответа
    //}
    closesocket(s); // закрытие сокета
    WSACleanup(); // прекращение работы с WinSock DLL
}
То есть в клиете вот пробую разделить строку по символам, потом создаю новый символьный массив из 8 элементов, присваиваю значения элементов.
В сервере элементы после 8 символами каретки заменяю.
Но не особо выходит((
Можно через MSG_PEEK как-то вроде еще?

Добавлено через 4 часа 5 минут
Все!)
Доделала)

Вернуться к обсуждению:
Клиент-Сервер: передача байтов C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2016, 18:14
Готовые ответы и решения:

Передача файлов клиент-сервер
Здравствуйте. Мне нужно организовать передачу файла из одной папки в другую. Клиент отправляет,а...

Передача и получение клиент-сервер
У меня программа- консольное приложение с архитектурой клиент-сервер. Также сервер подключен к базе...

Передача данных клиент-сервер
Добрый день, пытаюсь разобраться с передачей данных клиент-сервер. Вот кое-как по примерам в...

Передача данных Клиент-сервер-клиенты
Как передавать не строчные значения, а к примеру координаты float, целочисленные и логику? //...

2
28.03.2016, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2016, 18:14
Помогаю со студенческими работами здесь

Клиент-Серверное приложение. Как сделать, чтобы сервер сам отправлял сообщения на клиент
Добрый день всем. Проблема заключается в следующем: Есть клиент-серверное приложение, хочу...

Ограничениия на размер посланных(принятых) байтов в клиент-серверном приложении
Здравствуйте дорогие Есть ли ограничениия на размер посланных(принятых) байтов в клиент-серверном...

Tcp ip клиент-сервер C++ сервер выводит мусор
server # include &lt;sys/types.h&gt; # include &lt;iostream&gt; # include &lt;winsock2.h&gt; # include...

Клиент/сервер: клиент посылает серверу слово; определить, является ли это слово палиндромом
Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Функционирование клиента и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru