Показано с 1 по 5 из 5

Тема: SysSockSend и несклько сокетов

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию SysSockSend и несклько сокетов

    Добрый день!

    Есть, например, на ПЛК или СПК несколько открытых сокетов - сервера и клиенты. Могу ли я вызывать SysSockSend для разных сокетов в одном цикле или лучше за этим как то следить и разруливать?
    Может исключение какое вернется, сталкивался кто нибудь? Codesys 3.5, но и для второго полезно будет узнать.

    Сейчас все работает по очереди отправили запрос в один сокет - ждем ответа, затем другой... третий итд. Но это как-то не оптимально.

  2. #2

    По умолчанию

    Цитата Сообщение от lazy Посмотреть сообщение
    Добрый день!

    Есть, например, на ПЛК или СПК несколько открытых сокетов - сервера и клиенты. Могу ли я вызывать SysSockSend для разных сокетов в одном цикле или лучше за этим как то следить и разруливать?
    Может исключение какое вернется, сталкивался кто нибудь? Codesys 3.5, но и для второго полезно будет узнать.

    Сейчас все работает по очереди отправили запрос в один сокет - ждем ответа, затем другой... третий итд. Но это как-то не оптимально.
    Добрый день.
    Как я понимаю, у вас сокеты связаны с разными портами?
    Тогда можно и в одном цикле вызывать SysSockSend.

    Ваша текущая реализация выглядит разумнее с точки зрения джиттера - в пределах одного цикла задачи не будет "выбросов".

  3. #3

    По умолчанию

    Спасибо, понял. А джиттер будет связан с тем, что именно моя задача (этот конкретный цикл) будет исполняться дольше или я получу управление на следующем цикле чуть позже? Сокеты открыты в неблокирующем режиме.

  4. #4

    По умолчанию

    Цитата Сообщение от lazy Посмотреть сообщение
    Спасибо, понял. А джиттер будет связан с тем, что именно моя задача (этот конкретный цикл) будет исполняться дольше или я получу управление на следующем цикле чуть позже? Сокеты открыты в неблокирующем режиме.
    То, что в неблокирующем режиме - это здорово.
    Но всё равно, очевидно, что несколько SysSockSend в пределах цикла займут больше времени, чем один.

    Если говорить о CODESYS V3.5 - я бы рекомендовал использовать библиотеку NetBaseServices.
    Там более высокой уровень абстракции (и нужно писать меньше кода) и асинхронность из коробки.

  5. #5

    По умолчанию

    В общем ясно. Буду "проходить по открытым сокетам" и если кто то начал SysSockSend или SysSockRead на этом с сокетами все. ну а если прием/передача закончились, то в следующем цикле листаю сокеты со следующего по списку итд... )

Похожие темы

  1. настройка связи пк с плк с помощью сокетов
    от Sergey_Cherepovets в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 27.10.2010, 22:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •