問題タブ [luasocket]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
https - HTTPS での送信に LuaSec を使用するにはどうすればよいですか
私のスクリプトでは、ライブラリ LuaSocket を使用して XML コードを送信します。これは、次のコードで正常に機能します。
しかし今、私は XML を証明書付きのプロトコル HTTPS で送信します。LuaSec を使用できることはわかっていますが、どうすればよいですか? コードを HTTPS 用の動作するコードに変更する方法を教えてもらえますか?
http - lua ソケット http.request を使用して Web ページをダウンロードする
次のコマンドを使用しています。
しかし、私が得るのはこれだけです:
しかし、Web ブラウザーで表示されるページは、まったく異なるコンテンツを持っています。http.request を使用してこのページを取得するにはどうすればよいですか?
ありがとう。
sockets - サーバーからメッセージを受信するときにICMP「ポートに到達できません」を送信するudpクライアント
私は luasocket を使用する udp クライアントを持っています。
サーバーのデバッグ出力 (リモート ホストへの ssh) ですべてが正常に表示されているのに、クライアントで「タイムアウト」エラーが発生します。
クライアント側の Wireshark ですべてを検査すると、クライアントが送信したパケット、サーバーからの応答パケット (正しいポートとすべて)、および応答としてクライアント ホストからサーバーに送信された ICMP "ポートに到達できない" パケットが表示されます。それは(正しい)応答です。
そこで何が起こっているのですか?「すべてを受け入れる」ようにiptablesをリセットするなど、すべてを試しましたが、クライアントはまだ「ポートに到達できません」を送信します。
関連するパケットは次のとおりです。
重要な場合に備えて、ファイアウォール (これが発生している間、iptables は INPUT パケット カウンターをインクリメントしないため、私はそうは思いません):
lua - Lua での文字列比較に関する奇妙なバグ
Lua で Web から画像をスクレイピングするプログラムを作成しようとしています。軽微な問題として、画像に拡張子がない、または拡張子が正しくない場合があります。たとえば、このアニメーション化された「jpeg」を参照してください: http://i.imgur.com/Imvmy6C.jpg
そこで、画像のファイルタイプを検出する関数を作成しました。返された画像の最初の数文字を比較するだけです。PNG ファイルは PNG で始まり、GIF は GIF で始まり、JPG は奇妙な記号 "╪" で始まります。
画像は文字列として表現されるべきではないため、少しハックですが、うまくいきました。実際にコードを実行したときを除いて。
コマンドラインにコードを入力すると、正常に動作します。しかし、コードを含むファイルを実行すると、機能しません。奇妙なことに、それはjpegsでのみ失敗します。PNG と GIF は引き続き正しく認識されます。
バグを再現するために必要な最小限のコードは次のとおりです。
これをコピーしてコマンド ラインに貼り付けると、正しく "jpg" が返されます。これをファイルとして実行すると、「不明」が返されます。
Windows 8.1で、powershellを介してLua for WindowsパッケージのLua 5.1.4を使用しています。
編集:
問題が見つかりました string.byte("╪") は、コマンド ラインでは 216 を返し、ファイルとして実行すると 226 を返します。理由はわかりませんが、lua と powershell のエンコーディングが異なる可能性がありますか?
この行は問題を解決します:
http - http.TIMEOUT が lua で機能しない
タイムアウトを 10 秒に設定して長いポーリング リクエストを実行していますが、機能していないようです。私の理解では、指定されたタイムアウト内にバックエンドから応答が得られない場合、バックエンド呼び出しはtimedout
エラー コードで終了する必要があります。そうですか?
しかし、0.001 などの非常に小さなタイムアウトを使用すると、機能します。したがって、リクエストがすでにバックエンドに送信されている場合、タイムアウトは機能しないと思います。
私の長いポーリング リクエストでは、リクエストが送信されて応答を待っているときにネットワークがダウンしていると、lua ソケットがそこでハングし、その状況から回復することはありません。他の方法でこれを処理できる場合は、私を助けてもらえますか?
私の Lua バージョン - Lua 5.1.4 Copyright (C) 1994-2008 Lua.org、PUC-Rio (double int32)
コードスピネット: