提前感谢您的帮助。
有一个程序,不是我写的,它在本地局域网上发送UDP多播信息包。我已经查看了源代码,似乎它们被正确地设置为多播。这个程序是WSJT-X,如果你是一个火腿操作员,你可能听说过。
UDP数据包包含无线信号解码,因此包括我的程序在内的许多其他程序都对这些数据包感兴趣。
我遇到的问题是,我的UDP接收似乎消耗了消息,所以一旦我的测试软件启动,在同一台机器上运行的其他软件似乎都不会接收到它们。
这是一个简单的接收器:
using System;
using System.Collections.Generic;
using System.Linq;
us
public class RCon
{
static readonly ConcurrentQueue<byte[]> ReceivedPacketQueue = new ConcurrentQueue<byte[]>();
static IPEndPoint _ipEndPoint = new IPEndPoint(IPAddress.Parse("10.XXX.XX.117"), 2222);
static void Main(string[] args)
{
var client = new Ud
由于某些原因,我很难从同一个套接字发送和接收数据。无论如何,这里是我的客户代码:
var client = new UdpClient();
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000); // endpoint where server is listening (testing localy)
client.Connect(ep);
// send data
client.Send(new byte[] { 1, 2, 3, 4, 5 }, 5);
// then receive
我试图使用两个单独的程序从同一台机器发送和接收UDP数据包,但到目前为止我还没有收到任何信息。我试图完全关闭防火墙,但这仍然没有起作用。
发送程序
var sender = new UdpClient(Dns.GetHostName(), 2055);
var data = new byte[] { 0, 1, 2, 3, 4, 5 };
sender.Send(data, data.Length);
接收程序
var receiver = new UdpClient(2055);
var endPoint = new IPEndPoint(IPAddress.Any, 2055);
va
我有一个通过UDP将数据从一台计算机发送到另一台计算机的程序。问题是数据可能并不总是由发送程序发送,我希望接收程序的接收功能仅在向指定端口(本例中为5000)发送时才启用,否则当用户尝试使用UdpClient在端口上接收数据时,程序会崩溃。例如:
private const int listenPort = 5000;//receiving port
UdpClient listener = new UdpClient(listenPort);//udclient instance
IPEndPoint groupEP = new IPEndPoint(IPAddres
我创建了一个测试Xamarin.Forms项目,即选项卡式应用程序,支持iOS、Android和UWP。该应用程序与样板启动代码构建和运行在所有3个平台上正确。
Am 试图测试在应用程序中接收UDP广播。UDP广播是从同一子网上的另一台机器发送的(测试了来自另一台机器和同一台机器的广播,结果是相同的)。如果我在这台机器上运行一个独立的、非托管的UDP侦听器测试工具(这是我们内部编写的工具),我可以看到来自另一台机器的所有消息。
我将代码(如下所示)添加到Xamarin.Forms项目中,并在这台机器上运行UWP构建。我看到的是,在调试输出中,我得到了“开始接收”消息,然后就没有其他消息了。实际
我不熟悉这些要配置的网络内容,我正在尝试理解以下代码。 var Server = new UdpClient();
var multicastIp = IPAddress.Parse(_connectionParams[0]);
IPAddress localIp;
if (IPAddress.TryParse(_connectionParams[1], out localIp))
Server.JoinMulticastGroup(multicastIp, localIp);
else
Server.JoinMulticast
我想用C#的UdpClient来监听任何传入的UDP数据包,我想接收来自任何IP和任何端口的数据包。
我尝试了以下几种方法:
UdpClient udpClient = new UdpClient(0);
IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0);
byte[] data = udpClient.Receive(ref ep);
但没有成功。
有人知道哪里出了问题吗?提前感谢!
我试图用C#编写一个简单的UDP程序,它在本地主机上发送和接收数据。我是C#的初学者,但在MATLAB方面要好得多,所以我不再用C#编写服务器和客户端,而是决定使用C#发送数据并在MATLAB中接收数据。
我尝试了两种发送数据的方法。使用套接字类有效,但使用UdpClient类失败。
在运行此代码之前,我运行MATLAB代码来设置回调函数,以打印接收到的数据报。
每次运行中只有一个区域处于活动状态。我评论一下另一个。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
usi
下面的工作代码和功能代码是我编写的一个真正的测试应用程序的简化。它充当客户端,异步从本地端点发送UDP数据,并侦听来自其他实现服务器的回显响应。
所需经费如下:
发送和收听相同的端口号;
端口号必须能够更改(模拟来自不同来源的数据)
这个程序做我想做的,但我怀疑它的正确性。特别是关于listenThread和udpClient的类成员,它们在端口号更改时被重用。它们的实施、关闭和清理是否正确。
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace cs_conso
对于使用UDP协议的服务器和客户端之间的通信,我有一个非常奇怪的问题。客户端是用Mono2x编写的(我使用Unity3D作为我的客户端)并创建UdpClient类实例:
_udpClient = new UdpClient(9050);
_serverEP = new IPEndPoint(IPAddress.Parse(_serverIp), _serverPort);
我的服务器是我想在使用DatagramSocket的Raspberry上运行的UWP应用程序:
_udpServer = new DatagramSocket();
以下代码在端口15000上发送数据包:
int port = 15000;
UdpClient udp = new UdpClient();
//udp.EnableBroadcast = true; //This was suggested in a now deleted answer
IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, port);
string str4 = "I want to receive this!";
byte[] sendBytes4 = Encoding.ASCII.GetBy
我是UDP的新手。使用测试环境,我能够发送/接收单个UDP消息。但是,我正在尝试弄清楚如何接收多个UDP消息。我希望MyListener服务能够全天接收UDP数据包,无论我何时发送它们。我很感谢你的帮助。
PS -正如下面在答案中提到的,如果我在我的DoSomethingWithThisText周围加上一个while(true),它将在调试时工作。但是,当尝试将MyListener作为服务运行时,它将不起作用,因为Start永远不会通过while(true)循环。
我的监听服务看起来像这样...
public class MyListener
{
private udpClient u
下面的UDP服务器监听端口11000:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace UDPServer
{
class Program
{
static byte[] dataToSend = new byte[] { 1, 2, 3, 4, 5 };
// get the ip and port number whe
我正在尝试创建一个UDP服务器,它可以向发送消息的所有客户端发送消息。实际情况要复杂一些,但最简单的做法是将其想象为聊天服务器:在发送消息之前发送消息的每个人都会收到其他客户端发送的所有消息。
所有这些都是通过UdpClient在单独的进程中完成的。(不过,所有的网络连接都在同一个系统中,所以我不认为UDP的不可靠性是个问题。)
服务器代码是这样一个循环(后面是完整代码):
var udpClient = new UdpClient(9001);
while (true)
{
var packet = await udpClient.ReceiveAsync();
// Sen