問題タブ [unix-socket]
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.
python - UNIXドメインソケットでPythonxmlrpclibを使用しますか?
と対話しようとしsupervisord
ていますが、UNIXソケット(共有ホスティング環境)を介して対話したいと思います。
私がこれまでに試したことは次のとおりです。
/path/to/supervisor.sock
確かに存在します。'unix:///path/to/supervisor.sock/RPC2'の形式のURIは、によって使用されsupervisord
ます。これは、私がアイデアを得た場所です。ドキュメントでは、UNIXソケットについては説明していません:http://docs.python.org/library/xmlrpclib.html。
これは可能ですか?別のライブラリを使用する必要がありますか?
c++ - Linux ソケット ファイルのアクセス許可を変更する
まず、はい、これはこのスタック オーバーフローの質問に関連していますが、状況が少し異なり、投稿に回答がありません。
そこで、Dell デスクトップ ワークステーション Ubuntu 10.04 32 ビットで、Apache が実行する PHP「プログラム」に Unix ドメイン ソケットを提供するように設計されたサーバー プログラムを開発しました。(注: umask = 0022) ソケット ファイルに /home/wmiller/ACT/web_socket_file という名前を付けました。(ACTは製品名への参照です)。/home/wmiller/ACT には 777 のアクセス許可があります。/home/wmiller/ACT/web_socket_file は 777 のアクセス許可で作成されます。
ここで、このプログラムをテスト プラットフォーム (Q7 フォーマットの Intel プロセッサ ボード) にコピーします。これには、Ubuntu 10.04 32 ビットと umask = 0022 も含まれています。同じディレクトリ、ディレクトリに対する同じ 777 パーミッション。ただし、コード /home/wmiller/ACT/web_socket_file を実行すると、755 のアクセス許可が表示され、rw または rwx ではなく rx アクセス許可を取得するため、Apache/PHP は Unix ドメイン ソケットを開くことができません。Apache は uid = www-data で実行されています。
だから私はこれらの両方を試しましたが、どちらもうまくいきませんでした。
と
777 と o+w の権限を試しました。
私も追加しようとしました
しかし、そこには助けがありません。
ir があるマシンでは動作し、別のほぼ同一のマシンでは動作しない理由について、誰か提案がありますか? ソケットファイルを別の場所に置いた方がよいでしょうか? ソケットファイルが移動する標準的な場所はありますか?
linux - UNIXドメインソケット接続のもう一方の端を特定します
UNIXドメインソケットのもう一方の端を保持しているプロセスを把握しようとしています。一部のstrace
出力で、現在デバッグしている問題に関係している特定のファイル記述子を特定しました。その反対側にあるプロセスを知りたいのですが。そのソケットへの接続は複数あるため、パス名を使用するだけでは機能しません。
lsof
次の情報を提供してくれます。
したがって、私はいくつかのアドレス(「カーネルアドレス」?)、いくつかのソケット番号、およびパスを知っています。私は他の場所でも同じ情報を見つけることができます:
しかし、これは私のソケット接続のもう一方の端が何であるかを教えてくれません。どのプロセスがもう一方の端を保持しているのかをどのように知ることができますか?
python - Python: stdin/stdout が利用できない code.interact(local=locals())
Python では、次のコード スニペットは実行時にインタラクティブ シェルを開きます。
これは、文書化されていないかなりの量のコードのデバッグに非常に役立つことが証明されています。シェルを使用してプログラム内環境をナビゲートし、デバッガーがなくても何が起こっているかを把握できます。ここまでは順調ですね。
今、挑戦。
私が使用しているソフトウェア (ちなみに Django で作成されています) は、ある種のスケジューリング メカニズムを使用しており、別のPython プロセスと通信します。このメカニズムは、コードを編集する以外には制御できません。処理のために送信する変数以外に、入力はありません。
ただし、ドキュメントが非常に貧弱であるため、コードがどのように機能するのかわかりません。そのため、code.interact
メソッドを使用して物事を把握したかったのです。
しかし、このプロセスは何らかの特別なスケジューリング ソフトウェアによってバックグラウンドで開始されるため、フローは Django アプリケーションから調べたい部分には進みません。代わりに、シグナルとオブジェクトが送信され、後で完全に異なるプロセスで任意の時間 (10 ~ 200 ミリ秒の間) に実行されます。シグナルとオブジェクトが受信されると、stdin/stdout はまったく見えなくなります。
そのため、stdin/stdout を使用して通信する代わりに、パラメーターcode.interact
を指定することで、ファイル ハンドルまたは Unix ソケットを使用できると考えました。ファイルとソケットを使用しreadfunc
てこれを試しましたが、役に立ちませんでした。open()
今、私はそれを Django プロセス自体からのみ機能させようとしているので、スケジューリングの問題でさえ問題外であり、対話型シェルが実際に起動している間、すぐにシャットダウンし、コマンドを含むファイルをコンテンツとして受け入れず、 Python コマンドがパイプされる Unix ソケット。
長い話を短くします; code.interact
stdin/stdout 以外の方法で呼び出された対話型シェルと通信することは可能ですか? もしそうなら、どのように?
前もって感謝します。
c - select() ステートメントの問題
select() を使用して接続の準備ができているソケットをポーリングするプログラムがあります。
ソケットにバインドして send() コマンドを発行する別のプログラムがあります。
私が持っている質問は、ファイル記述子がそのような 2 つの実行可能ファイルで機能するかどうかです。
つまり、プログラム A のファイル記述子 5 を FD_SET に追加し、プログラム B のソケット fd が 5 の場合、そのソケットの send() は、5 を含む FD_SET で選択を行っているプログラム A を起動することを意味しますか?
ありがとう
unix-socket - UNIXネットワークプログラミングを試す
私は UNIX ネットワーク プログラミングを勉強しており、127.0.0.1 でサーバーを実行しています。しかし、私は物事にスパイスを加え、より実用的にするために、より大きな規模で試してみたいと思っています. そのため、サーバー アプリケーションをネット上でホストしたいと考えています。http ページを作成してアップロードし、それをインターネット ユーザーとして表示できるサーバーがあると聞きました。それで、人々がアプリケーションを実行できるように、いくつかのポートをサブレットするそのようなサーバーは他にありますか。
注:友達のコンピューターをサーバーのリモートデバイスとして使用してから接続することは、彼らがWindowsを使用しており、UNIXサーバーを実行する必要があるため、現実的ではありません
更新: 私の質問が明確でない場合は、ここに別の方法があります。
インターネット上のさまざまなホストのポートで実行されているサービスがあります..特定のIPのポート25のsmtpサーバーのように...そのIPのポート25にtelnetしてそのサービスと通信できます...同じ方法でそこにある特定のポートと IP を提供するサイト。サービスのオブジェクト ファイルをそのホストに ftp でアップロードし、そのサービスを割り当てられたポートで実行し、コンピュータ上のクライアントを使用してインターネット経由でそのサービスに接続します。
c - Unix ソケットのバッファリング特性
データの小さなチャンク (数バイト) を送信するときの Unix ソケットのバッファリング特性を知っている人はいますか?
TCP ソケットを使用している場合、Nagle アルゴリズムを無効にして、データ転送の遅延を防ぐことができます。しかし、Unix ドメイン ソケットには (私が知っている) 同等の機能はありません。
http - ドメインソケット経由の HTTP
私は、2 つのコンポーネントを持つデスクトップ ソフトウェアを少し書いています。コンポーネント B はコンポーネント A にクエリを実行します。Web サービスを作成することは、原則として IPC を実行するための理想的な方法のように思えます。データモデルが適合し、既製のクライアントおよびサーバーライブラリがあり、パラメーターをエンコードおよびデコードするためのよく知られた方法などがあります.
しかし、ネットワーク ソケット上に HTTP サーバーをセットアップすることは、ローカル アプリケーションには適切ではないようです。たとえば、どのポートを選択しますか? 人々が外部からスキャンしてアプリに話しかけることができるようにしたくないなど.
それで、ドメイン ソケットを介して HTTP を実行できるのではないかと考えていました。それは意味がありますか?優先順位はありますか?HTTP と同じプロパティ (指定されたリソース (URI) の要求、エンコードされたパラメーター、応答) を持つ IPC に使用できる同等のプロトコルはありますか?
C ライブラリ (ボーナス ポイントとして Go と ObjC の可能性もあります) を探しています。
posix - SCM_RIGHTS には移植可能な意味がありますか?
タイプ SCM_RIGHTS の補助データを使用して、Linux のプロセス間でファイル記述子を送信する方法を理解しています。しかし、IEEE Std 1003.1-2008 がそれについて言わなければならないことは次のとおりです。
SCM_RIGHTS
どういう意味ですか?タイプ SCM_RIGHTS の補助データに移植可能な意味はありますか?