溫馨提示×

c# beginreceive能用于TCP通信嗎

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

是的,BeginReceive 可以用于 TCP 通信。在 C# 中,BeginReceive 是一個異步方法,用于從套接字接收數據。當您使用 TCP 通信時,您需要使用 TcpClient 類來創建一個套接字,并使用 BeginReceive 方法來接收數據。

以下是一個簡單的示例,說明如何使用 BeginReceive 進行 TCP 通信:

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

class TcpClientExample
{
    static async Task Main(string[] args)
    {
        // 創建一個新的 TcpClient 實例并連接到遠程服務器
        using (TcpClient client = new TcpClient("example.com", 80))
        {
            // 發送 HTTP 請求
            string request = "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n";
            byte[] requestBytes = Encoding.ASCII.GetBytes(request);
            await client.SendAsync(requestBytes, SocketFlags.None);

            // 開始接收數據
            byte[] buffer = new byte[4096];
            IAsyncResult result = await client.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, null);

            // 處理接收到的數據
            while (!result.IsCompleted)
            {
                int bytesReceived = await result.AsyncWaitHandle.WaitOneAsync(1000, false);
                if (bytesReceived > 0)
                {
                    string response = Encoding.ASCII.GetString(buffer, 0, bytesReceived);
                    Console.WriteLine(response);
                }
            }
        }
    }
}

在這個示例中,我們首先創建了一個 TcpClient 實例并連接到遠程服務器。然后,我們發送一個簡單的 HTTP 請求,并使用 BeginReceive 方法開始接收數據。當接收到數據時,我們將其轉換為字符串并輸出到控制臺。

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