このRPG ソケット チュートリアルから、Java サーバー ソケットを呼び出すソケット クライアントを RPG で作成しました。
問題は、connect()/send() 操作がブロックされることであり、接続/送信が 1 秒単位で実行できない場合は、ログに記録して終了する必要があるという要件があります。
ソケットをノンブロッキング モードに設定した場合 (fnctl を使用していると思います)、処理方法を完全には理解できず、例を示した有用なドキュメントが見つかりません。
ノンブロッキング ソケットに接続する場合は、select(..., timeout) を実行する必要があると思います。これにより、接続が成功し、(bytes) を送信できるかどうかがわかります。しかし、後で send(bytes) すると、現在はノンブロッキング ソケット (呼び出し後すぐに返されます) になっているため、send() が実際にサーバーにバイトを送信したことを確認するにはどうすればよいですか?ソケット?
AS400 でクライアント ソケットを Java または C プロシージャとして使用するようにフォールバックすることもできますが、単純な RPG プログラムでそれを保持したいだけです。
誰かがそれを行う方法を理解するのを手伝ってくれませんか? ありがとう !