Многопоточность потока по одному кабелю Ethernet - PullRequest
0 голосов
/ 29 июля 2011

У меня есть следующая сеть Ethernet для связи с ПЛК (программируемые логические контроллеры).Один кабель Ethernet проходит от ПК к коммутатору Ethernet, а несколько кабелей параллельно подключаются к ПЛК.Каждый модуль ПЛК имеет свой IP-адрес, и я хочу общаться с ними по TCP-соединениям.
В коде я создаю объект TCPClient для каждого модуля, присваивая ему IP-адрес, и подключаюсь к ним перед отправкой данных.Я хочу создать отдельный поток для каждого модуля, и каждый поток будет отправлять данные в свой модуль, используя метод TcpClient.GetStream (). Write.Собираюсь ли я получить тот же объект Stream, когда GetStream вызывается из каждого потока (так как с ПК выходит только один кабель), или для каждого потока будут разные объекты Stream?Если они будут другими, мне не нужно синхронизировать потоки, так как объект Stream не будет общим ресурсом.Если это так, я предполагаю, что .net выполнит синхронизацию между различными вызовами Stream.Write, потому что выходит только один кабель.Это правда?Дополнительная информация и ссылки по теме приветствуются.

1 Ответ

1 голос
/ 29 июля 2011

Различные объекты TcpClient, следовательно, разные потоки. Синхронизация не требуется. Мультиплексирование нескольких соединений TCP через один кабель - это задача стека драйверов TCP / IP, встроенного в операционную систему. Не нужно помогать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...