Задать вопрос
  • Как внести все данные из текстового файла в односвязный список Си?

    @res2001
    Retr0Hacker,
    то есть вы имеете в виду

    Нет. Это конструкция к Си не имеет отношения.
    Я имел ввиду, что если у вас есть программа, которая работает с вводом с клавиатуры, то заставить ее обработать текстовый файл можно запустив ее в консоли вот таким образом:
    prog.exe <file.txt
    где prog.exe - это название вашей программы (или полный путь к ней), а file.txt - это путь к файлу в котором хранятся данные.
    В текстовом файле каждое отдельное вводимое поле должно начинаться с новой строки.
    Эта конструкция в шеле называется перенаправление стандартного ввода.

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

    как удалить элемент с наименьшим кол-вом разных букв(то есть последний во втором списке)?

    У вас проблемы с удалением элемента из односвязного списка?
    Вы уже написали функцию очистки списка.
    Удаление одного элемента происходит похожим образом - надо в next предыдущего элемента записать next удаляемого
    prev->next = cur->next;
    free(cur);

    Проблема за малым - по текущему элементу найти предыдущий.
  • Как ограничить доступ к локальным подсетям для разных клиентов OpenVPN?

    @res2001
    Можно убрать из конфига сервера:
    push "redirect-gateway def1"
    В ccd файле клиентов добавить директивы
    push "route ..."
    для каждой сети в которую должен попадать клиент.

    Это, конечно, не гарантирует, что клиент не добавит маршруты руками, но хоть что-то.
    К сожалению не силен в iptables.
  • В терминале putty нет кнопки подключения,как исправить?

    @res2001
    S0z1n, Если окно просто больше экрана, то лови лайфхак:
    1. Жмешь Alt+Space - появляется системное меню окна
    2. Выбираешь там Move (переместить)
    3. перемещаешь окно так что бы кнопки внизу были видны
    4. Enter
    5. Жмешь Открыть
    Все действия можно производить на клавиатуре, без участия мыши.
    И еще, в комплекте putty есть консольный вариант утилиты, plink называется утилита, если я правильно помню.
  • Как внести все данные из текстового файла в односвязный список Си?

    @res2001
    Нужно создать два вариант программы: с вводом с клавиатуры и вводом из текстового файла.

    Вообще то это один вариант.

    Ввод с клавиатуры - это чтение стандартного потока ввода (stdin).
    Средствами командной оболочки вы можете перенапривить stdin запускаемой программы в файл. Выглядит это схематично так: prog.exe <file.txt
    Это работает под всеми популярными ОС.

    Кроме того, внутри программы stdin представляет собой обычный файловый дескриптор. Просто когда программа стартует этот дескриптор (а так же stdout и stderr) уже открыт и имеет фиксированный идентификатор. Этим он и отличается от файловых дескрипторов, которые вы открываете в программе явно.
    Вам достаточно в программе передавать дескриптор ввода в функцию чтения и формирования связного списка. Передав в функцию stdin - она будет читать ввод с клавиатуры; передав файловый дескриптор, открытый явно - будет читать из файла.
    Таким образом сам код чтения строк и формирования связного списка один и тот же, вы подменяете только файловый дескриптор.
    При перенаправлении stdin в командной оболочке внутри программы вы продолжаете работать с stdin, но командная оболочка сама запускает программу так, что stdin теперь будет связан с файлом (а не с клавиатурой).

    PS: Будет лучше, если вы опишите какие проблемы возникают при работе программы.
  • Слетит ли лицензия Windows и Office, при копировании образа системы на другой компьютер?

    @res2001
    P747,
    Как думаете, если удалить разделы Windows и восстановить через образ, разделы Ubuntu перетруться, если физически на этом же диске находятся?

    Восстанавливайте именно разделы, а не диск целиком, тогда линуксовые разделы останутся.
  • Мало памяти на компьютере. Что делать?

    @res2001
    Zerg89, По сравнению с текущей ситуацией это ограничение - пустяк.
    Кроме того, если не держать профили пользователей в загрузочном разделе, то для большинства задач такого размера вполне достаточно.
  • Как пройти ошибку в bat файле при присвоении имени файлам?

    @res2001
    Михаил Компас, Смотри мое предыдущее сообщение. Как раз описал эту ситуацию.
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Надо смотреть системные логи, там должны быть сообщения о подключении новых устройств и ошибки из-за которых не появляются новые файлы устройств. Устройства могут быть заблокированы, например, правилами udev.
    Дополнительные устройства идентичны первому? Для других типов устройств могут использоваться файлы /dev/ttyUSB

    И хорошо бы проверить, что дополнительные устройства вообще работают.
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Дополнительные устройства вы подключаете дополнительно к первому или вместо него?
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Когда подключите дополнительные устройства у вас должны автоматически появиться дополнительные файлы устройств: /dev/ttyACM1, /dev/ttyACM2, ...
  • Как пройти ошибку в bat файле при присвоении имени файлам?

    @res2001
    Михаил Компас,
    Почему он работает всего с одним видеофайлом из папки?

    Возможно надо задать комбинацию, которую предложил MaxKozlov
    Т.е. сейчас, предполагаю, ffmpeg обрабатывает все файлы, но остается результат только последнего обработанного, т.к. последний параметр одинаковый для всех обрабатываемых файлов.
    Задайте "%%~ni-%%03d.mp4"
    Это сделает последний параметр уникальным для каждого обрабатываемого файла.
    На счет времени - тут уже надо разбираться в тонкостях ffmpeg. К батнику это отношения не имеет. Создайте новую тему, укажите в тегах ffmpeg. Надеюсь, тут найдутся люди хорошо знающие это ПО.
  • Как пройти ошибку в bat файле при присвоении имени файлам?

    @res2001
    Михаил Компас, Вообще ошибка сугубо ffmpegа. Я не разбираюсь в нем.
    Погуглил чуток: https://stackoverflow.com/questions/16120124/ffmpe...
    Попробуйте такой вариант: "part-%%03d.mp4"
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий, После вышеописанных манипуляций при отключенных фаерволах у вас должен ходить любой трафик между двумя сетями, а так же сеть 192.169.100.0 возможно будет выходить в интернет (если назначен шлюз по умолчанию 192.168.100.1).
    Дальше по одному включаете фаерволы и проверяете прохождение необходимого трафика. Если где-то блокируется, то добавляете соответствующие правила в фаервол и таким образом добиваетесь прохождения трафика.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий, Ок. Значит интернет маршуртизатор находится в сети 192.168.1.0.
    Тогда на маршрутизаторе 192.168.1.26 NAT не нужен в принципе. Он на интернет шлюзе уже есть. Внутренние сети NATить не нужно. Просто прописываем маршруты.

    Что надо сделать:
    1. На маршрутизаторе 192.168.1.26:
    1.1. Выключить NAT в Ideco
    1.2. Установить значение в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter в 1
    Если значение уже равно 1, то ничего не делаем.
    Если параметра IPEnableRouter в этой ветке нет, то надо его создать вручную, тип параметра REG_DWORD.
    Думаю, что у вас тут уже установлена 1.
    Это значение включит маршрутизацию (т.е. разрешит пересылку пакетов с одного интерфейса на другой) на компе.
    Если значение было изменено или параметр добавлен, то надо перезагрузить комп, чтоб изменения вступили в силу.
    2. Проверить таблицу маршрутизации на компах в сети 192.168.1.0 (кроме маршрутизатора 192.168.1.26).
    Если в таблице нет маршрута до сети 192.168.100.0, то добавить маршрут.
    2.1. Добавить маршрут к сети 192.168.100.0 через маршрутизатор 192.168.1.26.
    Вручную это можно сделать командой:
    route -p add 192.168.100.0 mask 255.255.255.0 192.168.1.26

    Если адреса на компах в сети 192.168.1.0 выдаются динамически, то можно этот маршрут добавить в опции DHCP, тогда он будет распространятся автоматически. Для тех же целей можно использовать GPO, если в сети развернута AD.
    3. Для компов внутри сети 192.168.100.0
    3.1. Думаю, что в этой сети у вас на компах шлюзом по умолчанию назначен 192.168.100.1, в этом случае ничего делать не нужно
    3.2. Иначе нужно прописать маршрут до сети 192.168.1.0 через 192.168.100.1, аналогично п.2. Или назначить шлюзом по умолчанию 192.168.100.1.
    4. На интернет роутере 192.168.1.1 нужно добавить статический маршрут до сети 192.168.100.0/24 через шлюз 192.168.1.26. Оюбычно это делается через веб интерфейс. Возможно так же понадобиться добавит в фаервол на роутере разрешающие правила для сети 192.168.100.0.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий, Перед шлюзом с какой стороны? У интернет маршуртизатора какой адрес на внутреннем интерфейсе?
    Из вашего пояснения сложно что-то понять, лучше оперировать адресами.
    Получается, что на шлюзе 3 сетевых интерфейса?
    1. 192.168.1.26
    2. 192.168.100.1
    3. интерфейс подключенный к интернет маршрутизатору. Какой адрес?
    Правильно?
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий, У вас этот шлюз какую роль выполняет? Он только маршрутизирует 2 сети? Делает еще что-то? Интернет, например через него ходит?
    NAT вешается на какой-либо сетевой интерфейс. Например на выходе в интернет NAT скорее всего нужен. На интерфейсах внутренних сетей NAT скорее всего не нужен.
    Если при выключенном NAT у вас пинги не идут - значит надо разбираться с маршрутизацией, а не дергать NAT.
    Приведите таблицу маршрутизации на компе из 100 сети и на компе из 1ой сети. route print
    На шлюзе маршруты должны быть, т.к. он имеет адреса из обеих сетей на своих локальных интерфейсах.
    Фаерволы на время работ выключите на всех компах с которыми работаете.
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer,
    насчет сигналов устройства

    Не знаю, что это за сигналы. В UART таких нет :)
    теперь кажется на стороне TCP сервера

    Протокол TCP обеспечивает доставку данных. Это значит, что если данные попали в сокет, то они по любому будут доставлены (или будет разорвано соединение по таймауту). Так что на стороне сервера вы по любому получите все данные, которые отправил nc. Даже если ваш сервер криво написан и тормозит.
    Но вот nc уже может отправлять далеко не все данные.
    Вообще скорость порта 9600 маленькая, нагрузку на сеть подобный поток вызывает не большую, легко справится даже 100 Мбит сеть.
    Попробуйте со стороны сервера так же запустить nc (вместо вашего сервера), получать данные из сети и писать их в файл. Посмотрите, что будет в файле. Будет ли пропадание данных и т.п. Если в таком варианте с данными будет все нормально - то ваш сервер не справляется.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий, К слову, дополнительный софт на шлюзе не то что бы нужен. Если он не выполняет каких-то дополнительных, необходимых вам, функций.
    Винда умеет сама маршрутизировать сети (пересылать пакеты с одного интерфейса на другой), а так же виндовый фаервол то же нормально справляется со своими задачами. Это все умеет делать даже обычная десктопная винда Home версии. Я уж молчу про какой-нибудь линукс.
    NAT, DHCP и т.п. сетевые сервисы есть в Windows Server.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий,
    из 1 в 100 Ответ от 192.168.1.26: Заданная сеть недоступна.
    из 100 в 1 Превышен интервал ожидания для запроса

    Ну вот, а вы писали
    с ПК 100й подсети я могу попасть по IP в 1ю подсеть

    А похоже, что не доступна. Возвращаемся к маршрутизации.

    В вашем случае сети, конечно, внешние по отношению друг к другу, т.к. для связи используется шлюз.
    Наличие или отсутствие NATа никак с этим фактом не связано. Если между сетями только 1 шлюз, то NAT скорее всего не нужен. NAT может быть встроен в ПО шлюза.

    Если NAT есть на одном интерфейсе, то, видимо, в эту сторону вы и можете попадать. А обратно нет - NAT блокирует.
    По уму надо убрать NAT и настроить стандартную маршрутизацию.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий,
    удаленка это программы anydesk и LiteManager

    Чем не устраивает стандартный виндовый удаленный раб.стол? Впрочем, это к проблеме отношения не имеет.
    ping есть, но только до шлюза

    А что с пингом в обратную сторону? Всегда надо проверять обе стороны, т.к. фаерволы по разному обрабатывают входящий и исходящий трафик, а так же ответы на исходящий трафик.

    И надеюсь NATа на шлюзе все таки нет. Он там не нужен. Разве что между этими двумя сетями есть еще что-то кроме шлюза.