問題タブ [loopback]
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.
c# - .netの双方向/ループバックUDP
同じポートで送受信する必要のあるアプリがあります。これは、次の2つの場合に発生する可能性があります。
PCがリモートハードウェアと通信している場所。「送信者に返信」するため、データグラムは送信ポートを介してPCに返されます。
PCがテストとデモのために自身と通信している場合(ループバックモード)(テストアプリは、UDPを介して偽のデータをメインアプリにフィードします)。
これは、ループバックを達成しようとしたときにのみ失敗するようです。私がそれを機能させる唯一の方法は、レシーバーが最初にセットアップされていることを確認することです-私は保証できません。
上記の状況を確実に処理するためにUdpClientを実装する「正しい」方法を提案することで、誰かが私の検索を絞り込むのを手伝ってもらえますか?
(リモートハードウェアで確実に機能することがわかった唯一の解決策は、単一のUdpClientを双方向で使用することですが、その結果に影響を与える可能性のあるレガシーコードを使用しています。2つのUdpClientを使用してみました。ただし、お互いに足を踏み入れる-場合によっては、一方のクライアントが起動すると、もう一方のクライアントが接続できなくなります。ポート共有を許可するようにExclusiveAddressUse / ReuseAddressを設定すると、レシーバーが最初に開始)
編集
詳細に:
UDPを介して外部ハードウェアと通信します。私たちから通信を受信すると、送信元アドレスに応答するため、同じポートでメッセージを受信します。この部分は正常に機能しています。
ただし、ループバックを使用して外部ハードウェアをエミュレートしようとすると(つまり、「自分自身に」同じポートを介して送受信する場合)、送信を開始する前に受信を開始した場合にのみデータグラムを受信できます。THatは正常に機能しますが、送信してから受信しようとすると、データを受信できません。この場合、私が実際に送信しようとしているものは関係ありません。
だから私は2つの問題があります:
1)確実に機能するループバックを管理する方法。
2)現在正常に動作している外部通信を壊さずに(1)を行う方法!
1つまたは2つのUdpClientのあらゆる種類の組み合わせと、さまざまな設定を試したので(役に立たなかった)、UPDループバックをうまく機能させることができたのではないかと思っていました。私がすべての場合に働くことができる解決策。
これについて考える時間を取ってくれてありがとう...
linux - JMeter - Linux で jmeter-server を起動するとループバック アドレス エラーが発生する
JMeter を使用して分散負荷テスト環境をセットアップしようとしています。Linux Live CD のような移植可能なものを使用してリモート クライアントをセットアップする必要がありますが、Linux で jmeter-server を起動しようとすると、次のエラーが表示されます...
大規模なグーグル検索の後、私が見つけることができる唯一の解決策は、/etc/hosts ファイルを編集して、ホスト名が 127.0.0.1 ループバック アドレス以外にマップされるようにすることです。Ubuntu、Fedora、および CentOS を使用してこれを試してみましたが、明らかに、それらはすべてデフォルトでホスト名を 127.0.0.l に設定しています。
私の見方では、4つのオプションがあります...
1) セットアップしたすべてのリモート テスト ボックスの /etc/hosts ファイルをカスタマイズします。これには、DHCP によって動的に割り当てられた 20 ~ 50 の IP アドレスが含まれます。
2) Linux 自体にデフォルトでホスト名を DHCP IP アドレスに割り当てるように強制する方法を見つけます。これは確かにより適切な解決策ですが、これを行う方法がわかりません。誰でも知っていますか?
3) デフォルトでホスト名が 127.0.0.1 にマップされていない Live CD として入手可能な Linux ディストリビューションを見つけて使用します。誰か知ってる?
4) JMeter のコードに飛び込んでワイヤをヤンクし始めますが、これに関しては、よりスリムな機能セットを備えた別のオープン ソース ツールをすぐに使用したいと思いますが、その分散アーキテクチャはこの問題に悩まされていません。
誰かアドバイスがあれば、私は感謝します。ありがとう!
macos - root を必要とせずに Snow Leopard でファイル サーバー (おそらく NFSD) を起動しますか?
OS X アプリでループバック デバイスを介してファイルを共有したい。ユーザーのホームディレクトリをいじることなく、頻繁に変更される読み取り専用ファイルのディレクトリをアプリで作成できるように、これを行いたいと考えています。ファイルは Application Support ディレクトリから切り離されますが、ユーザーはこれを気にする必要はありません。
Apple は、これを行うために NFS サーバーを使用することを推奨しています (この Q&A の「代替手段」セクションを参照してください)。
http://developer.apple.com/mac/library/qa/qa2001/qa1242.html
私が知る限りnfsd
、ルートとして実行する必要がありますが、これは避けたいと思います (アプリが起動するたびにユーザーにパスワードを要求するのは、ひどい UX になります)。
nfsd
root なしでインスタンスを起動することはできますか?
アプリに含めることができる代替 NFS サーバーはありますか? (どれも見つけられませんでした)
使用できる代替サーバーはありますか? (これらは Finder がマウントできるプロトコルであるため、サーバーは AFP、SMB、または WebDAV である必要があります。そのようなサーバーは見つかりませんでした)。
java - ローカルホストでのみ接続可能な ActiveMQ ブローカー
ローカルでのみ検出されるループバック JMS アダプターを実行する方法はありますか?
私の用語が正しいかどうかはわかりませんが、ActiveMQ ブローカーは、ブローカーが実行されているのと同じマシンからのみ接続できるようにしたいと考えています。
c - BashまたはCでのシリアルポートループバック/デュプレックステスト?(プロセス置換)
シリアルデバイスをループバックとして設定していて(つまり、受信した文字をエコーバックするだけです)、実効スループット速度を測定したいと思います。このために、私はのようtime
に、私が使用できることを望みました
ここで、' ...
'は実行できるコマンドです。
さて、最初の問題は、デバイスを2000000 bpsで使用したいので、 ttylogまたはscreenを使用できないことです(どちらも115200 bpsまでしか上がらないようです)。ただし、/dev/ttyUSB0
ファイルとしての作業(ファイルリダイレクトとを使用cat
)は正常に機能するようです。
今、私は似たようなことをしたいと思います-cat
シリアルポートにファイルを送り、シリアルポートを読み戻したいです-しかし、単一のターミナルコマンドから(それを引数として使用できますtime
)。
Bashプロセス置換を使用して、「書き込み」と「読み取り」の部分を「並列」に実行できると思いました。名前付きパイプで試してみると、次のように機能します。
comm
ここでは、2つのプロセスを(ある種の)1つのコマンドにマージする以外の目的で使用していません(echo
代わりに同じように使用することもできます)。
残念ながら、そのトリックはシリアルポートでは機能しないようです。試してみると、次のような結果になることがあります。
...しかし、通常、私はまったく出力を取得しません。これは、次のことを示しています。どのプロセスが最初に開始するかを制御できないためcat
、ポートの準備が整う前に読み取りを開始する可能性があります(ただし、上記の最初の例では問題にはならないようです)。または、Linux / Bashでは、シリアルポートの読み取りと書き込みの両方を同時に行うことはできないため、読み取りと書き込みのInvalid argument
両方が同時に行われているように見える瞬間に「」が発生します。
だから私の質問は:
cat
専用のCプログラムを作成せずに、Bashでのみこのようなこと(ループバックとして構成されたシリアルポートへのファイル。それを読み返して所要時間を確認する)を行う方法はありますか?- 専用のCプログラムが必要な場合、ネット上で使用できるソースの例はありますか?
ご回答ありがとうございます、
乾杯!
編集:私はwhile
上記のループが終了しないことを知っています。そのコマンドラインは予備テスト用であり、Ctrl-Cを使用して中断します。(原則として、のようなもので中断することはできますが、それではtimeout -9 0.1 bash -c 'while (true) do echo AA ; done'
、の目的が無効にtime
なります:))
そこにある理由while
は、当分の間cat
、デバイスからの読み取りがすぐに終了するためです。時々、私はデバイスをセットアップしました。そのため、cat
発行されると、実際にはブロックされ、着信データを待機します。しかし、現時点では何が起こっているのか理解できません(そして、部分的には、コマンドラインからテストする方法を探している理由です)。
を使用しなかった場合はwhile
、タイミングを想像して、次のようなものを使用します。
time bash -c 'comm <(echo "1234567890" > /dev/ttyUSB0) <(cat -A /dev/ttyUSB0)'
cat -A /dev/ttyUSB0
...ただし、これが機能するためには、最初に開始してブロックすることを前提としています。次に、echo
シリアルポートへの書き込み(および終了)。次にcat -A
、シリアルポートから読み取ったものをすべて出力し、終了します。(そして、シリアルポートがこのように動作できるかどうか、またそのように任意にブロックして終了できるかどうかはわかりませんcat
)。
正確な方法は実際には重要ではありません。可能であれば、この種のテストを実行するために自分のCプログラムをコーディングすることは避けたいと思います。そのため、基本的なBash/を使用してこのような「全二重テスト」を実行できるかどうかが私の主な関心事です。 Linux(すなわちcoreutils
); (そうでない場合は、既製のコードがある場合は、このようなものに使用できます)。
EDIT2:おそらく関連する:
.net - .NET 用の仮想ネットワーク アダプター ライブラリ
.NET で VPN プログラムを作成したいと考えています。必要な仮想ネットワーク アダプターを作成する方法がわかりません。OpenVPN が使用する tuntap ドライバーを調べましたが、.NET バインディングが貧弱または存在しません。また、Microsoft のビルトイン ループバック ドライバーがこれを実行できる可能性があると聞いたことがありますが、アダプターを介して送信されたパケットをアプリケーションが管理できるように "接続" する方法がわかりません。
.NET から仮想ネットワーク アダプタを作成して使用するにはどうすればよいですか?
.net - VBS(またはC#/ VB)からプログラムでMicrosoftループバックアダプターをインストールする
プログラムでMSループバックアダプタをインストールして、 SSH経由のSMBのトンネリングを自動化したいと思います。
ネット上で見つけたすべてのコードは、再配布できないMS devconユーティリティを使用しています(http://support.microsoft.com/kb/311272/en-usを参照)。使用例(その他の例):
配布可能性の問題は別として、理想的には、結果のデバイス名をある程度制御したいのですが、前後のネットワークアダプターを列挙し、新しいMSループバックデバイスを探すことで修正できます。私はそれと一緒に暮らすことができたと思いますが、それは少し際どいです。私の考えは、このコードの一部を適応させることです。
上記のリンク先のMSKBの記事が示唆しているように、私は現在、WDKのdevconソースコードを調べて、SetupAPI/CfgMgr32を介してループバックアダプターを追加しています。より簡単でスクリプト可能な方法はありますか?
存在しない場合、そのSetupAPI / CfgMgr32ルートの比較的単純なサンプルコードを持っている人はいますか?
winapi - Win32ソケット-他のローカルインターフェイスに送信するときに、IPパケットが物理インターフェイスを離れるように強制する
概要:同じマシン上に存在する2つの物理インターフェイス間でデータを渡すためのソケットを作成しようとしています。Win32ソケットは、物理インターフェイスを介してプッシュするのではなく、常にトラフィックをカーネルに直接転送します。おそらくデバイス設定、レジストリの微調整、ルーティングテーブルのシェナニガン、またはソケットオプションを使用して、この動作を無効にする方法はありますか?WindowsXPSP3を使用しています。
いくつかの背景。カスタムIPv4機器を実行するために、完全に自動化されたIPテストを構築しようとしています。Windows XPマシンの大規模なラボがあり、接続しているデバイスごとに個別の物理イーサネットインターフェイスがあります。私たちのデバイスは、事実上、それぞれが独自のIPを持つイーサネットルーターです。
ラボのマシンからデバイスを介してデータを送信してから、同じコンピューターに戻す必要があります。ユニキャストおよびマルチキャストUDP、TCP、およびブロードキャストIPトラフィックをデバイスを介して送信します。
トラフィックが宛先と同じマシンで発信されることを望んでいます(そしておそらく必要です)。これを行うには、それぞれが独自のサブネット上に独自のIPを持つ2つの別々のNICを構成します。たとえば、NIC#1は10.0.0.1 / 24で、NIC#2は10.0.1.1/24です。この場合、デバイスは単純なパススルールーターのように機能し、2つのインターフェイスを備えています。1つは10.0.0.0/24サブネット上にあり、もう1つは10.0.1.0/24サブネット上にあり、パケットをやり取りするだけです。
データを生成するために、Win32ソケットを使用できるようにしたいと考えています。これは、Win32ソケットが十分に理解され、十分にサポートされており、お客様が使用しているものであり、おそらく最も迅速なアプローチであるためです。パケットインジェクションは、UDPおよびブロードキャストIPではおそらく実行可能ですが、TCPでは実行可能ではない可能性が非常に高くなります。パケットインジェクションを使用したアイデアを楽しませたいと思いますが、標準のWin32ソケットを強く好みます。
要約で述べられているように、パケットがマシンを離れることはありません。私は狂人のようにグーグルで検索しましたが、あまり見つかりませんでした。何か案は?
c# - localhost を使用して HttpListener() をテストするにはどうすればよいですか?
私はHttpListener()
広範囲に使用するアプリに取り組んでいます。これまでのところ、実際のネットワークですべてのテストを行ってきましたが、今ではかなりうんざりしています。
通常の容疑者(localhost、127.0.0.1)を正しいポートで試しましたが、何も起こりません。
Windowsのどこかに設定はありますか?(私が通常 *nix ボーイであることは明らかですか?)
networking - 個人IPのpingとループバックのping
概念的な違いは何ですか?はい、どちらも同様の結果が得られるはずですが、ループバックのアイデアは、実際にはスタックの送信ステップに到達しないということだと思いました。それが本当なら、なぜあなた自身のIPをpingするのが同じくらい速く働くのですか?自分のアドレスにpingを実行すると、それはループバックとして扱われますか?ふたりの扱い方には根本的な違いがあると思いました。
助けてくれてありがとう!