c#

C#中socket.receive方法怎么使用

小亿
497
2023-10-30 10:10:33
栏目: 编程语言

在C#中,可以使用Socket类的Receive方法来接收数据。该方法有多种重载形式。以下是一个基本的用法示例:

using System;
using System.Net;
using System.Net.Sockets;

public class SocketReceiveExample
{
    public static void Main()
    {
        // 创建一个Socket对象并连接到服务器
        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        clientSocket.Connect(IPAddress.Parse("服务器IP地址"), 12345);

        // 接收数据的缓冲区
        byte[] buffer = new byte[1024];

        // 接收数据
        int bytesRead = clientSocket.Receive(buffer);

        // 将接收到的字节数组转换为字符串
        string receivedData = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);

        // 打印接收到的数据
        Console.WriteLine("接收到的数据:{0}", receivedData);

        // 关闭Socket连接
        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
    }
}

在上述示例中,首先创建一个Socket对象并连接到服务器。然后,创建一个缓冲区用于接收数据。使用Receive方法接收数据,并将数据存储在缓冲区中。接收完成后,可以将接收到的字节数组通过指定的编码方式转换为字符串。最后,关闭Socket连接。

需要注意的是,Receive方法是阻塞的,即程序在接收数据时会一直等待,直到有数据可用或者发生错误。如果需要设置超时时间或者非阻塞模式,可以使用Socket类的ReceiveTimeout和Blocking属性进行设置。

0
看了该问题的人还看了