Беда, конечно, что каждый ПЛК ведет себя по-разному, а под рукой нет другого, чтобы проверить...
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Программу то приведите, чего мы тут гадаем. На ПЛК100 мы даже WEB-сервер делали многопользовательский с визуализацией и графиками. Так что сокеты рабочие, но есть нюансы.
Тролль-наседка, добрый, нежный и ласковый
Вот, собственно, ФБ и пару функций, которыми пользуюсь, ФБ многим знаком, из оскатовской библиотеки.
TCP_CONTROL.zip
Эммм... что то у вас с переходом из step:=0;в step:=1; зачем прыгать туда-сюда из цикла в цикл? Принимайте (то есть будте в step:=1) пока не примите или не выйдет таймаут. Ну и с передачей собственно так же )
Последний раз редактировалось lazy; 09.10.2015 в 15:57.
и все таки: передаем - передали? да - принимаем - приняли? да - передаем. инициатором обмена должен быть клиент. сервак "слушает и отвечает" (это я к тому что "оставил в цикле только чтение" )
попробуйте вместо TcpReceiveData result:= SysSockRecv( diSocket, ADR(byBuffer[0]), 100,0);
у вас "сервак" шлет данные с какой периодичностью? может сервак передает а сокет закрылся по ready и(или) errcheck?
Последний раз редактировалось lazy; 09.10.2015 в 16:51.
Сервер не отвечает на посылки, пока такой алгоритм, НО я могу с сервера в произвольный момент времени отправить данные, на которые должен отреагировать клиент, если они не доходят с первого раза, то придется "долбить" клиента, чего не совсем хочется.
И еще, пока я буду ждать от сервера ответа(который может и не придти), как в нынешней ситуации, то у меня сокет по таймауту закрывается, безысходность какая-то...