在C#中发送UDP数据包

27

我有一个游戏服务器(WoW)。 我希望我的玩家可以下载我的自定义补丁来更新游戏。 我已经写好了一个程序来检查更新和下载文件。 如果玩家拥有了所有的补丁,我希望我的程序向游戏服务器发送一个数据包。我不需要从服务器获得任何响应,服务器将处理它,但这是另一个故事。

所以我想知道如何向服务器发送一个数据包。

谢谢!

2个回答

60
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp);

IPAddress serverAddr = IPAddress.Parse("192.168.2.255");

IPEndPoint endPoint = new IPEndPoint(serverAddr, 11000);

string text = "Hello";
byte[] send_buffer = Encoding.ASCII.GetBytes(text );

sock.SendTo(send_buffer , endPoint);

很棒的解决方案。您需要添加以下 C# 的 "using": using System.Net; using System.Net.Sockets; using System.Text; - Ari

18
static void SendUdp(int srcPort, string dstIp, int dstPort, byte[] data)
{
    using (UdpClient c = new UdpClient(srcPort))
        c.Send(data, data.Length, dstIp, dstPort);
}

使用方法:

SendUdp(11000, "192.168.2.255", 11000, Encoding.ASCII.GetBytes("Hello!"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接