草庐IT

FPGA通信第二篇--UDP

全部标签

windows - 多宿主系统上的 UDP 广播

我正在从事一个使用UDP广播发现/配置远程设备的项目。这些设备可能还没有配置IP地址,至少没有匹配它们所连接的网络。目前,我们使用目标地址为255.255.255.255的单个sendto。这在大多数情况下工作正常,但在具有多个NIC的Vista机器上,广播似乎只从其中一个接口(interface)发出。如何让Vista向所有接口(interface)发送广播? 最佳答案 我个人从未见过任何系统为每个接口(interface)生成数据包以响应单个sendto调用。更好的选择是枚举网络接口(interface),确定正确的链路本地广播

windows - AS3 中的 LocalConnections 如何通信?

我即将开始在几个SWF中使用LocalConnections让它们相互交谈。但在我开始这条路之前,我需要确保它不会导致系统出现任何弹出窗口和确认对话框。如果我使用本地套接字服务器,这会导致Windows防火墙和许多其他防火墙标记它并要求确认。所以如果LocalConnection使用套接字,那么我就不能使用它。但我通过一些网络搜索了解到它实际上使用共享内存工作,这不会导致任何防火墙提示。任何使用过LocalConnection的人都可以确认或否认它会导致主机操作系统出现问题吗?特别是对于Win7/Vista。 最佳答案 我已经使用L

c# - 您可以在 WCF 服务和托管它的 Windows 服务之间进行通信吗?

我有一个WCF服务,用于配置托管在将用于维护数据库的Windows服务中的内容。有什么方法可以访问托管服务内的WCF服务吗?或者我应该将数据库功能移动到另一个WCF服务并将它们都托管在Windows服务中吗? 最佳答案 服务类(实现服务接口(interface)的类)有一个属性OperationContext.Current.Host它使您可以访问托管您的服务的ServiceHost实例。您可以很容易地访问该服务主机。没有内置方法可以超越服务主机并操纵或查询包含服务主机的NT服务。但是您始终可以创建自己的自定义ServiceHost

windows - Windows 中的 SO_REUSEADDR 和 UDP 行为

我知道在*NIX环境中将SO_REUSEADDR与UDP一起使用,其行为类似于多播,其中绑定(bind)到同一端口的多个客户端可以同时收听和接收广播数据报。这也是Windows上的行为吗? 最佳答案 绑定(bind)到同一端口的Windows上的多个UDP套接字将一起接收广播数据包。这是一个演示程序,您可以使用GCC为Windows和Linux构建并使用Netcat进行测试,如前所述。在这两个系统中,当使用单播地址作为目标时,只有一个套接字(A或B)接收每个数据报。如果使用广播地址,那么两个套接字都会收到消息。/*Testedonl

c++ - 如何在 Visual Studio 2010 中创建 C++ Windows 服务并与之通信?

我有一个用C++实现的(某种)数据库。现在我想创建一个Windows服务来查询它,因为P调用它不是一个选项,因为每次查询都必须加载数据库,这需要几分钟。但是我面临几个问题:如何在VS2010中创建C++Windows服务?模板已被删除(为什么???),我可以使用2008模板并转换它吗?如果是:我在哪里可以找到这样的模板?假设我设法创建了一个C++Windows服务:我可以通过哪些选项与该服务(来自csharp)进行通信?有什么优点/缺点?我很乐意提供任何提示!本 最佳答案 不知道为什么,模板真的没有了。对于您的应用程序和服务之间的通

c++ - UDP - 微爆期间丢失的数据

下面的代码在99.9的时间内运行良好(即不会丢失消息)。但是,当数据报之间以2-3微秒的速率出现微突发数据报时,我就会遇到数据丢失的情况。boostnotify_one()成员调用需要5到10微秒才能完成,因此这本身就是这些条件下的关键瓶颈。关于如何boost性能有什么建议吗?接收者/“生产者”代码线程:if(bytes_recvd>0){InQ.mut.lock();stringt;t.append(data_,bytes_recvd);InQ.msg_queue.push(t);//消费者代码线程://snip......std::strings;while(1){InQ.mut.

windows - 如何在多个程序中接收相同的 udp-stream?

我有一个封闭的第三方系统,它发送一个单播UDP流(MPEG-TS),我想在同一台计算机上的两个不同程序中访问它。我不能更改源上的任何内容,甚至不能更改IP或端口。除了编写我自己的捕获流然后创建新流并重新发送这两个流的小程序之外,还有其他选择吗?似乎两个目标程序中只有一个处理多播,所以我需要两个单播流。 最佳答案 您应该能够使用socat将单播UDP转发到多播组,或者只是将数据保存到文件中并稍后处理。编辑0:这是一个例子(这是在Linux上——没有任何Windows机器)。在单播端口4242上监听,转发到多播224.10.10.10:

c# - 仅从特定适配器(例如 192.168.101.1)发送 UDP 广播(255.255.255.255);在 Windows 上

适用于WindowsXP或更高版本的解决方案。最好使用C#或C++。我们不想使用子网定向广播(例如192.168.101.255)进行广播,因为我们尝试联系的设备没有对此做出响应。相反,我们希望能够仅从特定NIC/IP地址发送目标为255.255.255.255的UDP数据报,这样广播就不会在其他NIC上发送。这意味着我们必须绕过IP堆栈,这就是问题所在。我们如何绕过Windows上的IP堆栈,仅从特定的NIC/MAC地址发送符合UDP/IP的数据报? 最佳答案 只需将套接字bind()到所需的接口(interface)而不是使用I

sql - 如何检查 ODBC 通信,查看正在传递的 SQL?

是否有适用于Windows的工具,我们可以使用它来检查通过特定ODBC数据源的任何SQL命令? 最佳答案 您可以让ODBC注销它正在做的一切:http://support.microsoft.com/kb/274551http://msdn.microsoft.com/en-us/library/ms711020%28VS.85%29.aspx您也可以通过编程方式进行:...OnecandothisbycallingSQLSetConnectAttrandsettheSQL_ATTR_TRACEattributeintheconne

c - 使用 C 的 Windows 进程间通信 (IPC)

我有一个用C语言和MicrosoftVisualC++编写的旧程序,我需要实现某种“保持事件”,因此我能够将进程间通信接收到一个新程序中,该程序将终止并重新启动如果在过去5秒内没有收到消息,则第一个。问题是我一直在寻找任何C语言的WindowsIPC教程或示例,但我找到的几乎所有内容都是针对C++的。任何帮助或资源?编辑:正如@Adriano在回答中所建议的那样,我正在尝试使用共享内存。但是由于我无法捕获的某种异常,启动程序正在被Windows终止。调用CopyMemory时发生。代码如下:#include"stdafx.h"#include"windows.h"#include"io