С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Linux Функция bind: Permission denied https://www.cyberforum.ru/ cpp-linux/ thread1269695.html
Здравствуйте! Продолжаю изучение сетевого программирования по книге "Стивенс Р. UNIX Разработка сетевых приложений". После комиляции и запуска простого сервера времени и даты, функция bind возвращает ошибку Permission denied. Сам код: #include "unp.h" #include <time.h> int main(int argc, char **argv) { struct sockaddr_in servaddr;
C++ Linux NetBeans 8.0.1 под Linux Ubuntu - не работает даже Hello, World
После сборки(проходит успешно)проекта запускаю программу на выполнение, начинается выполнение-,бегунок мечется туда-сюда, а консольного окошка с результатами выполнения нет. Пробовал несколько раз, в том числе и простейшую "Hello,World!". В чем проблема, я что-то не так делаю?Куда копать?
C++ Linux Системный вызов epoll_ctl: Bad file descriptor https://www.cyberforum.ru/ cpp-linux/ thread1268915.html
Программа выдает epoll_ctl: Bad file descriptor. Помогите разобраться что не так делаю int fd, epfd; fd = open ("file", O_RDONLY); struct epoll_event event; event.data.fd = fd; event.events = EPOLLIN | EPOLLOUT; ret = epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event); if(ret) { perror("epoll_ctl");
C++ Linux Пример клиента времени и даты выдает ошибку connect error: Connection refused https://www.cyberforum.ru/ cpp-linux/ thread1268319.html
Здравствуйте! Изучаю сетевое программирование по книге "Стивенс Р. UNIX Разработка сетевых приложений". Скомплировал клиент TCP для определения времени и даты: #include "unp.h" int main(int argc, char **argv) { int sockfd, n; char recvline; struct sockaddr_in servaddr;
C++ Linux Удалить из последовательности все четные элементы
Дана последовательность из n целых элементов. Удалить из нее все четные (по значению) элементы, затем отсортировать ее по убыванию. Вывести на экран исходную последовательность до удаления, после удаления и после сортировки.
C++ Linux На Linux пойдут приколы с убегающей мышкой и самооткрывающимся дисководом? Может ли программа на Linux написанная на GTK+, Qt, GTK#, wx переместить мышку или открыть дисковод? https://www.cyberforum.ru/ cpp-linux/ thread1266168.html
C++ Linux Select отслеживание псевдотерминала Я дурак или лыжи не едут? https://www.cyberforum.ru/ cpp-linux/ thread1265765.html
Здравствуйте товарищи! Тема такая. Начну из далека... Вобщем надо мне определить было работает у меня интернет радио или нет, то есть идут пакеты или не идут, взял я значит для этих целей tcpdump слушаю им по нужному порту, если радио работает он выводит информацию о пакетах которые лезут, если пакеты не идут соотвественно новые строки в терминале не появляются, значит радио не работает. Так...
Cin не реагирует на Enter C++ Linux
Здравствуйте. Вот такой код using namespace std; vector<int> v; int l; cin >> l; v.push_back(l); cout << "v: " << v << endl;
C++ Linux VK api wall.get https://www.cyberforum.ru/ cpp-linux/ thread1265403.html
Доброго времени суток, форумчане! Возник вопрос, с которым не могу разобраться самостоятельно и гугл не помогает. Есть необходимость выкачать информацию со стронички пользователя vk.com и обработать ее. Погуглив узнал, что просто так этого не сделать, потому что это не статически загружается страничка, а динамически, писали про их API vk. Начал изучать документацию. Нашел нужные функции. Начал...
C++ Linux Cygwin программа в колледже привет (я из литвы, без абид за граматику) очень нужна помощь немогу понять с чего начать задание можеть подскажите как правилно написать такую прогу, буду очень благодарен. Создайте скрипт, который а) выводит имена всех папок, содержащихся в рабочем каталоге. https://www.cyberforum.ru/ cpp-linux/ thread1265360.html
C++ Linux Непонятная ошибка при закрытии дескриптора файла
1) Непонятная проблема происходит при закрытии дескриптора файла (открытого файла на чтение) в коде на C++ ниже (ОС Linux). Это метод класса, который вызывается периодически по таймеру. Если я вставляю в конце этой функции close(barcode_fd), то программа падает в segmentation fault, а если оставляю без оператора close, то программа работает правильно, но в системе со временем исчерпываются все...
C++ Linux Скомпилировать драйвер для 2.8" TFT + Touch Shield Board v2.1 (ILI9341) - Raspberry Pi B+ https://www.cyberforum.ru/ cpp-linux/ thread1263343.html
Исходник драйвера Второй день бьюсь, не могу скомпилировать драйвер, может кто скомпилировать? Пробовал по этой инструкции: http://habrahabr.ru/post/106702/ - не получилось :(
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 574
0

Как реализовать вызов функции write для каждого байта строки - C++ Linux - Ответ 6692604

07.10.2014, 20:25. Показов 943. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Делаю упражнение 5 главы 1 по книге "Стивенс Р. UNIX Разработка сетевых приложений":
Изменить листинг 1.5 следующим образом. Сначала поменяйте номер порта, заданный функции sin_port, с 13 на 9999. Затем измените один вызов функции write на циклический, при котором функция write вызывается для каждого байта результирующей строки. Откомпилируйте полученный сервер и запустите его в фоновом режиме. Затем измените клиент из предыдущего упражнения (в котором выводится счетчик перед завершением программы), изменив номер порта, заданный функции sin_port, с 13 на 9999. Запустите этот клиент, задав в качестве аргумента командной строки IP-адрес узла, на котором работает измененный сервер. Какое значение клиентского счетчика будет напечатано? Если это возможно, попробуйте также запустить клиент и сервер на разных узлах.

Вот код сервера:
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
#include    "unp.h"
#include    <time.h>
 
int main(int argc, char **argv) {
  struct sockaddr_in    servaddr;
  char              buff[MAXLINE];
 
  // Создаем TCP сокет
  int listenfd = Socket(AF_INET, SOCK_STREAM, 0);
 
  /**
   * Заранее известный порт сервера (13 в случае сервера времени и даты) связывается с сокетом путем заполнения структуры адреса интернет-сокета
   * и вызова функции bind
   */
  bzero(&servaddr, sizeof(servaddr));
  servaddr.sin_family      = AF_INET;
 
  // сервер принимает соединение клиента на любом интерфейсе в том случае, если узел сервера имеет несколько интерфейсов
  servaddr.sin_addr.s_addr = htonl(INADDR_ANY); 
  servaddr.sin_port        = htons(13); /* daytime server */
 
  Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
 
  // Преобразовываем сокет в прослушивающий сокет
  Listen(listenfd, LISTENQ);
 
  // Прием клиентского соединения, отправка ответа
  for ( ; ; ) {
    // Блокируем процесс сервера, ожидая принятия подключения клиента
    int connfd = Accept(listenfd, (SA *) NULL, NULL);
 
    time_t ticks = time(NULL);
 
    // добавляем возврат каретки и пустую строку к строке
    /*snprintf(buff, sizeof(buff), "%.24s ; sizeof buff: %ld\r\n", ctime(&ticks), sizeof(buff));*/
    int bytes = snprintf(buff, sizeof(buff), "%.24s ; sizeof buff: %ld\r\n", ctime(&ticks), sizeof(buff));
 
    // передаем результат клиенту
    /*Write(connfd, buff, strlen(buff));*/
 
    int i;
    for (i = 0; i < bytes; ++i)
      Write(connfd, &buff[i], 1); // пересылаем по 1 байту в цикле
 
    // Закрываем соединение с клиентом
    Close(connfd);
  }
}
Закомментированная функция write - это исходный вариант, а с циклом - то, что я пытался зделать, но не уверен, что все правильно. Подскажите пожалуйста, правильно ли я реализовал циклицеский вызов функции write и если нет, то как исправить?

Вернуться к обсуждению:
Как реализовать вызов функции write для каждого байта строки C++ Linux
0
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2014, 20:25
Готовые ответы и решения:

Удалить из каждого байта строки первый (старший) бит.
Здравствуйте. Суть задачи в общем-то и отображена в названии задачи. Есть строка: unsigned...

Как реализовать левосторонний вызов функции?
Нужно реализовать левосторонний вызов функции. Мне нужно что бы функция возвращала ссылку на...

как взять значение определенного бита из байта? и как организовать такое в цикля для каждого бита?
FASM моя первая задача - вычислить n-e число фибоначчи бинарное возведение в степень допустим...

Open For Binary Access Write - непонятные 4 байта
Добрый день. Может кто-то сможет помочь. Задача вот какая: принимаю с web сервера некие данные,...

1
07.10.2014, 20:25
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2014, 20:25
Помогаю со студенческими работами здесь

Переставить биты в обратном порядке для каждого байта
Переставить биты в обратном порядке для каждого байта. Решите пожалуйста

Как сделать перебор файла по байтам, нужна статистика каждого байта, в делфи.
нашел тут на форуме паскалевский вариант, но незнаю как его переделать в делфи, с формами, я...

Свои настройки для каждого экземпляра - как реализовать?
Есть вот такой плагин для выора цвета: (function ($){ var defaults = {colors: new Array...

Как реализовать для каждого объекта свой поток
Господа помогите плиииЗ ... как сделать для каждого объекта свой поток??? тут я сделал так...

Как реализовать вызов "переменной" функции?
Столкнулся с задачей в которой имя исполняемой функции назначается в процессе выполнения...как...

Как реализовать вывод сообщения в QMessage, используя вызов функции при нажатии кнопки QMessage
Вечер добрый. Столкнулся с изложенным ниже заданием на собеседовании: В этой задаче вам нужно...

0
Блоги программистов
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru