首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C#中如何通过并行任务中的tcp socket接收数据?

在C#中,可以通过并行任务中的TCP Socket来接收数据。下面是一个示例代码:

代码语言:csharp
复制
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建TCP监听器
        TcpListener listener = new TcpListener(IPAddress.Any, 1234);
        listener.Start();
        Console.WriteLine("等待客户端连接...");

        while (true)
        {
            // 接受客户端连接
            TcpClient client = await listener.AcceptTcpClientAsync();
            Console.WriteLine("客户端已连接");

            // 处理客户端连接的任务
            Task.Run(() => HandleClient(client));
        }
    }

    static void HandleClient(TcpClient client)
    {
        try
        {
            // 获取网络流
            NetworkStream stream = client.GetStream();

            byte[] buffer = new byte[1024];
            int bytesRead;

            // 循环接收数据
            while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
            {
                // 处理接收到的数据
                string data = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead);
                Console.WriteLine("接收到数据: " + data);
            }

            // 关闭连接
            client.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生错误: " + ex.Message);
        }
    }
}

这段代码创建了一个TCP监听器,等待客户端连接。一旦有客户端连接,就会创建一个新的任务来处理该客户端连接。在处理任务中,通过TcpClient的GetStream方法获取网络流,然后使用NetworkStream的Read方法来接收数据。接收到的数据可以根据需要进行处理。

这个示例中使用了C#的异步编程模型,通过await关键字和async修饰符来实现并行任务。在处理客户端连接的任务中,可以根据实际需求进行业务逻辑的处理。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云云数据库(https://cloud.tencent.com/product/cdb)可以用于部署和管理云计算应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券