Еще раз извиняюсь за резкость.

Эту тему я прочел, и все остальные, перекурил все исходники НО.
Начиная от того что я не понимаю зачем валить все сокеты в начале, - это бред согласитесь, их еще нет.
Как здравому человеку в голову придет такая мысль?
А объяснять что это не виндовоз, и тут все ограничено это глупость.
Тем более если контроллер сетевой, и сетевой обмен есть, да и функции есть наверное это должно работать
нормально а не через …. Думаю это не трудно – совсем не трудно.

В хелпах нет ничего – описания slibsocket вообще нет как такового.
Вот из темы
Вообще на ПЛК 100.K-M можно создать 15 сокетов и SysSockCreate последовательно будет возвращать числа (манипуляторы или дескрипторы) от 1 до 15.
Супер наблюдал уже 16!?

Вот ваше сообщение:

думаю пример докажет, что соединение ТСР можно устанавливать и оно работает, без глубоких знаний работы сокетов, весь пример собран на библиотеках OSCAT и S3 в свободном доступе, есть нюансы касательно овен-овских контроллеров, но они были озвучены техподдержкой на форуме уже давно

Ну и что? Работать то она работает, содрана по чуть-чуть и все. А ход процесса не объясняет. В общем пусть работает
как есть просто хочется чтобы мой продукт работал нормально – просто отлично, и я его мог поддерживать и понимал
где косяки(особенности) плк, чтоб хот как-то их обойти.

“нюансы касательно овен-овских контроллеров, но они были озвучены техподдержкой на форуме уже давно”
А не подскажете где эти нюансы? Может они решили бы все мои проблемы, а то по заявлению овна – можно все,
блин – точно можно? А мультикаст работает?

Вот если прочесть это:

я делал веб-сервер и пять компов подключалось к ПЛК, получал на каждом нужную информацию и меня не заботила реализация. Такие организации как oscat и S3 не самоучки, которые выложили свои примеры, этот код протестирован и раз уж они его представили, значит он будет работать в среде CoDeSys

Для меня это не понятно, меня заботит реализация, и как это работает. Чтоб понимал лично я и отвечал лично я за свою работу.

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

Вот код который есть во всех примерах

IF diSocket <> SOCKET_INVALID THEN
SysSockSetOption(diSocket, SOCKET_SOL, SOCKET_SO_REUSEADDR, ADR(dwValue), SIZEOF(dwValue));
sa.sin_family:=SOCKET_AF_INET;
sa.sin_addr:=SOCKET_INADDR_ANY;
sa.sin_port:=SysSockHtons(uiPort);
bResult:=SysSockBind(diSocket, ADR(sa), SIZEOF(sa));
IF bResult = FALSE THEN
diSocket:=SOCKET_INVALID;
ELSE
bResult:=SysSockListen(diSocket, diMaxConnections);
IF bResult = FALSE THEN Так у меня всегда FALSE!!!!!!!!!!!!!!!!!!!
diSocket:=SOCKET_INVALID; Тут мы что получим вечно поднимающийся сокет!!???
END_IF
END_IF
END_IF

Вот и весь вопрос – почему так а не иначе?

А вот еще кусочек кода с темы

res:=SysSockBind(sock,paddr,SIZEOF(tcp_adr));
res:=SysSockListen(sock,1);

Да не хочу я делать так! Мне принципиально знать на каком этапе что отвалилась. А то глупость получается
Ой программка то не работает..

Наверное мой вопрос должен был звучать так
Почему у меня SysSockListen(diSocket, diMaxConnections); все время FALSE (-1).
Что-то делаю я не правильно или это особенность.
Если я косячу, если можно подскажите где копать.
Если особенность – как себя ведет, как с ней бороться.

На форуме к сожалению не нашел ответ на мой вопрос, нашел только то что все кто пытался что-то сделать просто
забивал на то или иное или перестраивал концепцию – вот и все. Возможно я плохо ищу или читаю с право на лево.

Спасибо.