问题标签 [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.

0 投票
3 回答
4302 浏览

c# - .net 中的双向/环回 UDP

我有一个需要在同一个端口上传输和接收的应用程序。这可能在两种情况下发生:

  • PC 与远程硬件通信的地方。它“回复发送者”,因此数据报通过发送端口返回到我的 PC。

  • PC 与自身对话(环回模式)以进行测试和演示(测试应用程序通过 UDP 将虚假数据馈送到我们的主应用程序)。

这似乎只在尝试实现环回时失败。我可以让它工作的唯一方法是确保首先设置接收器 - 这是我无法保证的。

任何人都可以通过建议一种“正确”的方式来实现 UdpClient(s) 以可靠地处理上述情况,从而帮助缩小我的搜索范围吗?

(我发现与远程硬件可靠工作的唯一解决方案是以双向方式使用单个 UdpClient,尽管我正在使用可能会影响该发现的遗留代码。我尝试使用两个 UdpClients,但他们互相踩脚 - 在某些情况下,一旦启动一个客户端,另一个客户端就无法连接。使用 ExclusiveAddressUse/ReuseAddress 设置以允许端口共享,我几乎可以让它工作,除了接收器必须先开始)

编辑

详细说明:

我们通过 UDP 与外部硬件通信。当它收到我们的通信时,它会回复源地址——所以我们会在同一个端口上接收回消息。这部分工作正常。

但是,如果我尝试使用环回模拟外部硬件(即,我通过“对我自己”的同一个端口发送和接收),我只能在开始传输之前开始接收数据报。效果很好 - 但如果我发送然后尝试接收,我永远不会收到任何数据。在这种情况下,我实际尝试发送的内容无关紧要。

所以我有两个问题:

1)如何管理可靠工作的环回。

2)如何做(1)而不破坏当前工作正常的外部通讯!

当我尝试了 1 或 2 个 UdpClients 和多种不同设置的各种组合(无济于事)时,我只是想知道是否有人设法让 UPD 环回正常工作,因为这可能会给我带来我可以在所有情况下工作的解决方案。

感谢您花时间考虑这个问题...

0 投票
5 回答
23169 浏览

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。

在我看来,我有四个选择...

1) 为我设置的每个远程测试盒定制 /etc/hosts 文件,其中涉及 20-50 个以上动态 DHCP 分配的 IP 地址。

2) 想办法强制 Linux 自己默认将主机名分配给它的 DHCP IP 地址。这当然是更优雅的解决方案,但我不知道如何做到这一点。有人知道吗?

3) 查找并使用作为 Live CD 提供的 Linux 发行版,默认情况下它的主机名不映射到 127.0.0.1。有人知道吗?

4) 深入研究 JMeter 的代码并开始拉线,但如果涉及到这一点,我会尽快使用另一个具有更精简功能集的开源工具,但其分布式架构不会遇到这个问题。

如果有人有任何建议,我将不胜感激。谢谢!

0 投票
2 回答
406 浏览

macos - 在雪豹中启动文件服务器(可能是 NFSD)而不需要 root?

我希望我的 OS X 应用程序通过环回设备共享文件。我想这样做,以便我的应用程序可以使用户可以使用经常更改的只读文件目录,而不会弄乱用户的主目录。这些文件将从应用程序支持目录中分离出来,但用户不必担心这一点。

Apple 建议使用 NFS 服务器来执行此操作(请参阅本问答的“替代方案”部分):

http://developer.apple.com/mac/library/qa/qa2001/qa1242.html

据我所知nfsd,必须以 root 身份运行,我希望避免这种情况(每当应用程序启动时要求用户输入密码将是一个可怕的 UX)。

nfsd是否可以在没有 root的情况下启动实例?

我可以在应用程序中包含任何替代 NFS 服务器吗?(我找不到任何)

有没有我可以使用的替代服务器?(服务器必须是 AFP、SMB 或 WebDAV,因为这些是 Finder 可以挂载的协议——我找不到任何这样的服务器)。

0 投票
1 回答
1481 浏览

java - ActiveMQ Broker 只能在 Localhost 上连接

有没有办法运行只能在本地检测到的环回 JMS 适配器?

我不确定我的术语是否正确,但我希望 ActiveMQ 代理只能从代理运行的同一台机器上连接。

0 投票
2 回答
33393 浏览

c - 串行端口环回/双工测试,在 Bash 或 C 中?(过程替换)

我有一个串行设备设置为环回(这意味着它会简单地回显它接收到的任何字符),我想测量有效的吞吐速度。为此,我希望我可以使用time,如

其中 ' ...' 将是我可以运行的一些命令。

现在,第一个问题是我想以 2000000 bps 的速度使用设备,所以我不能使用 ttylogscreen(它们似乎都只能达到 115200 bps)。但是,/dev/ttyUSB0作为文件使用(使用文件重定向和cat)似乎工作正常:

现在,我想做一些类似的事情——我想将cat文件发送到串行端口,并让串行端口读回——但是从单个终端命令(所以我可以将它用作 的参数time)。

我认为我可以使用 Bash 进程替换,让“写作”和“阅读”部分以“并行”的方式运行——如果我用命名管道尝试它,它可以工作:

在那里,我没有将comm其用于任何其他目的,而不是将两个进程(某种程度)合并为一个命令(我想,我也可以使用它echo)。

不幸的是,这个技巧似乎不适用于串行端口,因为当我尝试它时,我有时会得到:

...但是,通常我只是没有任何输出。这告诉我:要么无法控制哪个进程首先启动,因此cat可能在端口准备好之前开始读取(但是,在上面的第一个示例中这似乎不是问题);或者在 Linux/Bash 中,您不能同时读取和写入串行端口,因此“ Invalid argument”会出现在读取和写入似乎同时发生的那些时刻。

所以我的问题是:

  • 有没有办法只在 Bash 中做这样的事情(cat一个文件到配置为环回的串行端口;读回它,看看它需要多长时间),而无需编写专用的 C 程序?
  • 如果我需要一个专用的 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:也可能相关:

0 投票
1 回答
864 浏览

.net - .NET 的虚拟网络适配器库

我想在 .NET 中编写一个 VPN 程序。我不确定如何创建所需的虚拟网络适配器。我查看了 OpenVPN 使用的 tuntap 驱动程序,但它的 .NET 绑定很差,甚至不存在。我还听说微软的内置 Loopback 驱动程序可能能够做到这一点,但我不知道如何“连接”到它,以便我的应用程序可以管理通过适配器发送的数据包。

如何从 .NET 创建和使用虚拟网络适配器?

0 投票
3 回答
3528 浏览

.net - 从 VBS(或 C#/VB)以编程方式安装 Microsoft 环回适配器

我想以编程方式安装 MS 环回适配器以自动通过 SSH 建立 SMB 隧道

我在网上找到的所有代码都使用了 MS devcon 实用程序,该实用程序不可再分发(参见http://support.microsoft.com/kb/311272/en-us)。示例用法(更多示例):

除了可分配性问题之外,理想情况下,我希望对生成的设备名称进行一些控制,尽管这可以通过枚举之前和之后的网络适配器并寻找新的 MS 环回设备来解决。这有点过分,虽然我想我可以忍受它。我的想法是调整其中的一些代码

我目前正在研究来自 WDK 的 devcon 源代码,以通过 SetupAPI/CfgMgr32 添加环回适配器,正如上面链接的 MS KB 文章所建议的那样。有没有更简单/可编写脚本的方法?

如果没有,是否有人为该 SetupAPI/CfgMgr32 路由提供了一些相对简单的示例代码?

0 投票
3 回答
2695 浏览

winapi - Win32 套接字 - 在发送到其他本地接口时强制 ip 数据包离开物理接口

摘要:我正在尝试创建套接字以在同一台机器上存在的两个物理接口之间传递数据,而 Win32 套接字总是直接在内核中转发流量,而不是通过物理接口推送。有没有办法禁用这种行为,可能是通过设备设置、注册表调整、路由表恶作剧或套接字选项?我们使用的是 Windows XP SP3。

一些背景。我正在尝试构建一些完全自动化的 IP 测试来运行我们的定制 IPv4 设备。我们有一个大型的 Windows XP 机器实验室,以及我们连接到的每台设备的单独物理以太网接口。我们的设备实际上是以太网路由器,每个路由器都有自己的 IP。

我们需要通过我们的设备将数据从我们的实验室机器发送出去,然后再发送回同一台计算机。我们将通过设备发送单播和多播 UDP、TCP 和广播 IP 流量。

我们希望(并且可能需要)流量源自它注定要到达的同一台机器。为此,我们在自己的子网上配置了两个独立的 NIC,每个 NIC 都有自己的 IP,例如 NIC #1 的 10.0.0.1/24 和 NIC #2 的 10.0.1.1/24。然后,我们的设备就像简单的直通路由器一样,有两个接口,一个在 10.0.0.0/24 子网,一个在 10.0.1.0/24 子网,它们只是来回转发数据包。

为了生成我们的数据,我们希望能够使用 Win32 套接字,因为它很容易理解、得到很好的支持、我们的客户正在使用什么,并且可能是最快速的方法。数据包注入对于 UDP 和广播 IP 可能是可行的,但对于 TCP 很可能不可行。我会接受使用数据包注入的想法,但更喜欢标准的 Win32 套接字。

如摘要中所述,数据包永远不会离开机器。我像疯子一样用谷歌搜索,但没有找到太多。有任何想法吗?

0 投票
2 回答
3565 浏览

c# - 如何使用 localhost 测试 HttpListener()?

我正在开发一个HttpListener()广泛使用的应用程序。到目前为止,我一直在实际网络上进行所有测试,但现在我已经厌倦了。

我用正确的端口尝试了通常的嫌疑人(localhost,127.0.0.1),但没有任何反应。

Windows 中的某个地方有设置吗?(很明显我通常是 *nix 男孩吗?)

0 投票
2 回答
10061 浏览

networking - ping 个人 IP 与 ping 环回

概念上有什么区别?是的,我意识到它们都应该产生相似的结果,但我认为环回的想法是它实际上并没有到达堆栈的传输步骤。如果这是真的,那么为什么 ping 你自己的 ip 工作得那么快呢?ping您自己的地址是否将其视为环回?我认为两者的待遇有根本的不同。

提前感谢您的帮助!