溫馨提示×

c# beginreceive能用于UDP通信嗎

c#
小樊
129
2024-12-04 07:25:50
欄目: 編程語言

是的,BeginReceive 可以用于 UDP 通信。在 C# 中,您可以使用 UdpClient 類來處理 UDP 通信。BeginReceive 方法允許您在異步模式下接收數據,這對于處理大量數據或在高延遲的網絡環境中非常有用。

以下是一個簡單的示例,展示了如何使用 UdpClientBeginReceive 進行 UDP 通信:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

class UdpCommunication
{
    private const int Port = 12345;
    private const string ServerIp = "127.0.0.1";

    private UdpClient udpClient;

    public UdpCommunication()
    {
        udpClient = new UdpClient(Port);
    }

    public void StartListening()
    {
        Task.Run(() =>
        {
            while (true)
            {
                IPEndPoint remoteEndPoint = null;
                byte[] bytesReceived = udpClient.Receive(ref remoteEndPoint);
                string receivedData = Encoding.UTF8.GetString(bytesReceived);
                Console.WriteLine($"Received message from {remoteEndPoint}: {receivedData}");
            }
        });
    }

    public void Send(string message)
    {
        udpClient.Send(Encoding.UTF8.GetBytes(message), message.Length, ServerIp, Port);
    }
}

class Program
{
    static void Main(string[] args)
    {
        UdpCommunication udpCommunication = new UdpCommunication();
        udpCommunication.StartListening();

        Console.WriteLine("Press any key to send a message...");
        Console.ReadKey();

        udpCommunication.Send("Hello, UDP!");

        Console.WriteLine("Message sent.");
        Console.ReadKey();
    }
}

在這個示例中,我們創建了一個 UdpCommunication 類,它使用 UdpClient 類來發送和接收 UDP 數據包。StartListening 方法在一個單獨的任務中運行,以便在后臺持續監聽數據包。當接收到數據包時,它會打印出發送方的 IP 地址和接收到的消息。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女