Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 2 / 0
Регистрация: 20.05.2016
Сообщений: 8

Сетевое программирование на С++

03.05.2018, 14:01. Показов 3143. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! есть приложение с++ на linux-сервере, которое обрабатывает массив данных и выдаёт какой-то результат. Сейчас массив считывается из файла на сервере. Как лучше сделать так, чтобы клиент(windows) мог передавать, например, txt файлы с массивами(ооочень большими массивами)на сервер, программа обрабатывала, и выдавала результат обратно клиенту? куда копать, что смотреть, как проще и лучше сделать?
заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.05.2018, 14:01
Ответы с готовыми решениями:

Сетевое программирование.
Всем привет.Интересует следующий вопрос : подскажите какие - нибудь толковые книги по сетевому программированию (с хорошим изложением...

Сетевое программирование. Ваше советы
Сетевое программирование с чего начать ? Моя цель такая "головой зайти" в сетевое программирование и зарабатывание на нем деньги)). ...

Криптография, многопоточное программирование, сетевое программирование
Не знаю, с чего начать, подскажите: В этом задании необходимо реализовать клиент-серверное приложение, позволяющее суммировать...

9
6 / 6 / 1
Регистрация: 16.10.2016
Сообщений: 12
03.05.2018, 14:11
Привет
Подход к использованию сокетов зависит от операционной системы, но суть и результат один и тот же
В С++ всё очень гибко благодаря тому, что всё равно используются байты везде, всегда можно передать что угодно и куда угодно, при этом восстановить на другой стороне

Если нужно лишь передать файл, без написания функционала с сокетами, то самый простой способ создать файл локально и отправить его по SSH

Если настроить SSH с ключами, то в программе на клиенте всё будет выглядить примерно так:
C++
1
2
3
4
5
6
7
8
9
int main() {
  ofstream f("filename");
  // создание и запись файла...
 
  // отправка файла используя ресурсы SSH
  system("scp ./filename:remotehost/home/user/filename");
 
  return 0;
}
Я не помню как правильно пользоваться scp, но думаю Вас не затруднит почить документацию
Это был самый простой вариант на мой взгляд

Второй вариант, мне кажется, лучше, но будет тяжелее в реализации если Вы не сильны в С++, в этом случае нужно примерно базово понимать как работают сетевые технологии
Как работать с сокетами на Windows - https://msdn.microsoft.com/en-... s.85).aspx
На не намного проще, но всё же - http://www.linuxhowtos.org/C_C++/socket.htm

Для стабильности доставки файла я бы пользовался протоколом TCP
0
0 / 2 / 0
Регистрация: 20.05.2016
Сообщений: 8
04.05.2018, 07:58  [ТС]
shezuka, shezuka,

Полезно, спасибо) про system(...) вроде так просто, но сам не пришёл к этому.

Извиняюсь, что пропустил момент в постановке вопроса: а если клиентом является web-приложение, через что ей можно взаимодействовать с программой? пока копаю в сторону nginx и FastCGI.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.05.2018, 08:48
Web-приложение на чём сделано?
0
0 / 2 / 0
Регистрация: 20.05.2016
Сообщений: 8
04.05.2018, 08:53  [ТС]
nmcf,
php, javascript
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.05.2018, 09:01
Т. е. этот Linux-сервер и обеспечивает web-приложение? А зачем тогда C++? Загрузку файла на сервер можно же через php, javascript реализовать.
0
0 / 2 / 0
Регистрация: 20.05.2016
Сообщений: 8
04.05.2018, 09:10  [ТС]
nmcf,
Запутал вас)

Есть два линуксовых сервера- web-сервер и сервер обработки данных (сервер приложений). На сервере обработки данных есть программа на c++, которая , грубо говоря, обрабатывает массив из 300 значений и выдаёт определённый ответ. Нужно сделать так, чтобы я мог загрузить на сайт документ с массивом данных, нажал кнопку "рассчитать" и получил ответ на этом же сайте.
Вот как-то так
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.05.2018, 09:18
Зачем такая сложная схема? Т. е. web-сервер должен взаимодействовать со вторым сервером? Ну в PHP есть же поддержка сокетов. Пробуй.
0
0 / 2 / 0
Регистрация: 20.05.2016
Сообщений: 8
04.05.2018, 13:08  [ТС]
nmcf,
да, на web-сервере хранятся только файлы, необходимые для загрузки страниц, и тд...

вот такая вот поставлена задача...там ещё сервер хранения данных, резервирования и прочее) большой проект

Добавлено через 2 часа 45 минут
nmcf,
что-то подобное получилось, спасибо но если мне надо передавать таким образом целые файлы, то по TCP это, по-моему, не удобно делать(если не так-поправьте). можно ЛИ завязать с++ и php для передачи файлов через SSH?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.05.2018, 13:33
Для шифрования, что ли? TCP всё равно, что передавать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2018, 13:33
Помогаю со студенческими работами здесь

Сетевое программирование
помогите разобраться в сетевом программирование в какую сторону капать?

Сетевое программирование C++
Здравствуйте. Такой вопрос - надо написать программу, поддерживающую игру с сервером и между 2-мя клиентами. Какой литературы по сетевому...

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

Сетевое программирование [с++]
уважаемые форумчане, мне нужна ваша помощь. я закончил курс основ программирования в консоли, и следующая ступень которая для меня важна...

Сетевое программирование
Уважаемые форумчане, давно пытаюсь создать связь между клиентом на Java и сервером на C++. Принятие данных от клиента сервером происходит...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru