問題タブ [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.

0 投票する
8 に答える
43391 参照

java - Java用のUNIXソケット実装?

UNIX ソケットはプラットフォーム固有であるため、Java 以外のコードが含まれている必要があることを認識しています。具体的には、JDBC を使用して、UNIX ドメイン ソケットのみが有効になっている MySQL インスタンスに接続することに関心があります。

これはサポートされていないようですが、私が読んだ限りでは、Java 用の UNIX ソケットの適切な実装が 見つかれば、少なくとも UNIX ソケットに基づく JDBC 用の SocketFactory を作成できるはずです。

誰もこれを試しましたか?誰もそのような実装を知っていますか?

0 投票する
3 に答える
3716 参照

mysql - How can I map a local unix socket to an inet socket?

I'm curious if it is possible to map a UNIX socket on to an INET socket. The situation is simply that I'd like to connect to a MySQL server. Unfortunately it has INET sockets disabled and therefore I can only connect with UNIX sockets. The tools I'm using/writing have to connect on an INET socket, so I'm trying to see if I can map one on to the other.

It took a fair amount of searching but I did find socat, which purportedly does what I'm looking for. I was wondering if anyone has any suggestions on how to accomplish this. The command-line I've been using (with partial success) is:

Now I can make connections and talk to the server. Unfortunately any attempts at making multiple connections fail as I need to use the fork option but this option seems to render the connections nonfunctional.

I know I can tackle the issue with Perl (my preferred language), but I'd rather avoid writing the entire implementation myself. I familiar with the IO::Socket libraries, I am simply hoping anyone has experience doing this sort of thing. Open to suggestions/ideas.

Thanks.

0 投票する
2 に答える
1722 参照

ipc - Unix ドメイン ソケットがバインドされるのを待ちます

Unix ドメイン ソケットを介してサーバー プロセスに接続するクライアント アプリを作成しています。サーバー プロセスが実行されていない場合は、サーバーが起動し、ソケットで接続をリッスンするまでクライアントを待機させます。

現在、クライアントに再試行ループがあり、ソケットに正常に接続されるまで毎秒 connect() を呼び出します。

特定の名前付きソケット ("/var/mysock" など) が作成されてサーバー プロセスにバインドされるまで単純にブロックする呼び出し可能な関数はありますか?

0 投票する
4 に答える
5362 参照

linux - erlang: UNIX ドメイン ソケットのサポート?

サードパーティのドライバーに頼らずに、Erlangから直接 UNIX ドメイン ソケット ( /var/run/dbus/system_bus_socket など) にアクセスする方法はありますか?

0 投票する
3 に答える
2933 参照

sockets - UNIX ドメインソケット: 「ビジー」シグナルなどはありますか?

受信側が負荷に対処できない場合、UNIX ドメイン ソケット ( AF_UNIX タイプ ) を介してデータをプッシュするクライアントにビジーの信号を送信できますか?

また

フロー制御を処理するために、ソケットの上にクライアント サーバー プロトコルが必要ですか?

0 投票する
1 に答える
1369 参照

ruby - ruby ソケット dgram の例

RubyでUNIXソケットとSOCK_DGRAMを使用しようとしていますが、その方法を理解するのに非常に苦労しています。これまでのところ、私は次のようなことを試してきました:

誰もこれを経験していますか?

0 投票する
4 に答える
11298 参照

ruby - Ruby での Unix ソケットからの読み書き

Ruby で UNIX ソケットに接続、読み取り、書き込みしようとしています。これは、haproxy によって使用される統計ソケットです。

私のコードは次のとおりです。

1回目は成功しますが、2回目で失敗します。理由はわかりません。

何が問題ですか?UNIX ソケットと Ruby の使用に関する適切なリファレンスはありますか?

0 投票する
4 に答える
554 参照

c++ - Windows ソケット プログラムの Unix への移植: UNIX での winsock32 API の代替

ソケットプログラミングで、接続が閉じられた場合、Unix スレッドはどのようにしてクライアントからソケット CLOSE イベントを受け取りますか?

受信した CLOSE イベントについて UNIX スレッドに通知する API はありますか?

Windows と同様に、指定されたソケット記述子のイベント通知を取得する WSAEnumNetworkEvents API があります。Unix ソケット プログラミングで使用される同等の API は何ですか?

クエリのヘルプを提供してください。

0 投票する
2 に答える
2098 参照

c - では、AF_UNIX (AF_LOCAL) ソケットのタイムアウトの場合は、setsockopt を使用してください...文書化されていない/機能しない...オプション/代替手段はありますか?

それが問題なら、Fedora 13を実行しています。

unix(7)、setsockopt、および send/recv のマニュアル ページを調べました。

マニュアルページを読むと、多かれ少なかれ、すべてのオプションが何かを行うことが保証されているわけではないことがわかります...そして、実際に文書化されているのは、機能する/機能しないオプションのほんの一部です。

特に...タイムアウトが可能かどうかを確認したかったのです。少なくとも私のシステムでは、SO_RCVTIMEO は実際に recv ファミリーの呼び出しのタイムアウトを設定します... しかし、SO_SNDTIMEO はソケットをタイムアウトなしのノンブロッキング モードに設定しているように見えます。

だから私の質問は... setsockopt が AF_UNIX ソケットでタイムアウトを処理するための信頼できる方法ではないという事実を回避するにはどうすればよいですか?

0 投票する
7 に答える
54030 参照

c - Unix Domain Socket: 1 つのサーバー プロセスと複数のクライアント プロセス間でのデータグラム通信の使用

Linux で複数のプロセス間で IPC 接続を確立したいと考えています。これまで UNIX ソケットを使用したことがないため、これがこの問題に対する正しいアプローチであるかどうかわかりません。

1 つのプロセスがデータ (フォーマットされていない、バイナリ) を受け取り、データグラム プロトコル (つまり、AF_INET を使用した UDP と同様) を使用して、ローカルの AF_UNIX ソケット経由でこのデータを配布します。このプロセスからローカル Unix ソケットに送信されたデータは、同じソケットでリッスンしている複数のクライアントによって受信されます。受信者の数は異なる場合があります。

これを実現するために、次のコードを使用してソケットを作成し、それにデータを送信します (サーバー プロセス)。

この書き込みは ENOTCONN (「トランスポート エンドポイントが接続されていません」) を報告する errno と共に -1 を返します。これは、現在、このローカルソケットをリッスンしている受信プロセスがないためだと思いますよね?

次に、このソケットに接続するクライアントを作成しようとしました。

ここで、バインドは失敗します (「アドレスは既に使用されています」)。それで、いくつかのソケットオプションを設定する必要がありますか、それともこれは一般的に間違ったアプローチですか?

コメント/解決策をお寄せいただきありがとうございます!