Из этого руководства по сокету rpg мы создали клиент сокета в rpg, который вызывает java серверный сокет
Проблема в том, что операции connect () / send () блокируются, и у нас есть требование, согласно которому, если подключение / отправка не может быть выполнено в считанные секунды, мы должны просто зарегистрировать его и завершить.
Если я установлю сокет в неблокирующий режим (я думаю, с помощью fnctl), мы не полностью понимаем, как действовать, и не можем найти никакой полезной документации с примерами для него.
Я думаю, что если я подключаюсь к неблокирующему сокету, мне нужно сделать select (..., timeout), который сообщает нам, успешно ли соединение и / мы можем отправить (байты). Но, если мы отправим (байты) впоследствии, поскольку теперь это неблокирующий сокет (который немедленно вернется после вызова), как я узнаю, что send () действительно отправил байты на сервер перед закрытием разъем ?
Я могу вернуться к тому, чтобы клиентский сокет в AS400 был процедурой Java или C, но я действительно хочу сохранить его в простой программе RPG.
Кто-нибудь поможет мне понять, как это сделать, пожалуйста? Спасибо !